【发布时间】:2016-09-26 14:43:15
【问题描述】:
我想对我的 Struts 1.x 应用程序进行现代化改造。有不少文章提倡代码迁移,而不是重写整个系统。
我想向已成功对遗留应用程序进行现代化改造的人寻求建议。
我当前的系统使用 struts 1.x 和 JDBC 准备语句作为数据访问层。
我期待通过以下目标改进旧版应用程序:
- 网页编码时应考虑到响应式网页设计。
- 用 Spring MVC 替换 struts 1.x
我希望将现代化分为以下几个阶段:
- 第 1 阶段 - 将所有 jsp 页面更改为 HTML 5 和 CSS 3
- 第 2 阶段 - 将所有 DAO 类更改为 Spring JDBC 模板或 Spring JPA 和由 Spring 管理的事务
- 第 3 阶段 - 最终,用 Spring MVC 替换 Struts 1.x Action Forms、Actions
在开始更改之前,我想知道是否可以:
- 带有 HTML 5 和 CSS 3 的 Struts 1.x?我正在考虑用 HTML 5 和 JSTL/EL 替换所有 struts 1.x html 标签库。
- 使用 Spring 3/4 运行 Struts 1.x?是否可以使用 Spring bean 运行非 Spring 管理的 pojo?
我应该注意什么以及如何/有哪些最佳做法来处理这个现代化过程?代码库大约有 50 万个 HTML/JSP 代码和 300 万个 Java 代码。
【问题讨论】:
-
第 2 和第 3 阶段:您将需要在 Struts 操作中“注入”Spring @Service 类(使用 JDBC 模板或 JPA),如果您掌握了 Spring 应用程序上下文的句柄,就可以做到这一点从 Struts 动作中。为此,您定义了一个 Spring “上下文感知” bean,它设置了一些静态字段,例如myApplicationContext,到链接sujitpal.blogspot.it/2007/03/…中的应用程序上下文。然后,您只需访问此类的静态字段即可获取应用程序上下文和服务。所以看起来你可以这样做。
-
这意味着我根本不能对带有 Spring 的 Struts 1.x 使用注释?
-
好吧,首先您使用注解(例如 JPA)来提供服务。 (阶段2)。然后,在第 3 阶段,当您将操作转换为 Spring MVC 时,您将使用 Spring MVC 注释。
-
是的,检索应用程序上下文的正确方法是@JavierCaselli 在答案中指出的方法,而不是我评论中的链接。
-
我不同意。这可以是执行升级的系统过程。
标签: spring-mvc struts-1 legacy