我不想辩论是否从struts2转换 - >用SpringMVC。我有最好的理由去做。这是客户要求/支付的费用。
我已经做了struts1年了,我已经完成了SpringMVC。我希望通过xml进行配置,而不是使用Annotations。
我的计划是:
我知道这只是触及需要做的事情的表面。还有其他人要添加吗?
提前致谢,
安德鲁
答案 0 :(得分:4)
如果正确创建了struts2操作,那么服务层就会有一个干净的API。希望Struts2应用程序已经在使用Spring DI。 Struts2对象可以重用。但是web层相对较薄,因此最好删除struts2动作的任何痕迹以简化进一步的开发,而不是留下奇怪的工件。
struts的用户有四个主要部分负责。
已经提到的动作类应该非常薄,它的主要目的是在前往视图的路上封送对象。 (要编组它们,需要设置表单参数并验证它们)。如果从服务层获取对象,那么您应该能够将逻辑切换并粘贴到Spring控制器中。如果您发现应该在服务层中的逻辑,则应该将其推高。
视图层中的标签我不太确定。可能最好用jstl标签替换struts特定标签。 Struts2没有庞大的标签集,标签之间应该有一对一的映射,但是你需要弄清楚映射是什么(以及哪个标签是最好的)。
验证 - 我不知道Spring MVC如何进行验证。
拦截器解决横切问题,我不知道Spring拦截器是如何工作的。 Spring可以通过AOP来解决自定义拦截器的问题。
总而言之,网络层不应该是非常具有侵略性......而且我不确定你将获得什么。请注意,如果您当前的S2应用程序未使用Spring DI,则可以非常轻松地添加AOP,您甚至可以将操作的创建委派给Spring。因此,我预计这种转换的回报很少。作为替代方案,使用Spring MVC开始构建所需内容可能更容易,并将struts2操作转换为Web服务(json非常容易)。当你有时间在Spring MVC中实现它们时,然后拆分它们。转换意味着理解两个系统并对它们进行映射,它很混乱且容易出错......这具有相同的最终效果(删除struts2框架),但也可以提高生产率。