Struts2 + Spring,是Spring Plugin所必需的吗?

时间:2012-08-24 12:07:23

标签: struts2 struts2-spring-plugin

我正在使用为另一个项目开发的Spring服务bean替换现有旧Struts2项目中的服务层。

我想将@Inject这些服务bean放入我的Action类中。

是否需要使用Struts的Spring插件?或者我可以将Spring添加到我的Struts Web应用程序中,就像我任何其他人一样(ContextLoaderListener,applicationContext.xml,context:component-scan)?

我错过了Struts Spring插件以另一种方式帮助我的原因吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以完成您在问题中描述的大部分内容,因为服务层完全不适用于S2,而Struts2并不关心如何创建服务层实例和其他内容。

我看到使用Struts2-Spring插件的好处是将创建的Struts2相关内容委托给Spring,如创建Action类,InterceptorsResults等。

我的建议是使用插件,因为你将在你的应用程序中使用Spring,所以它非常好,灵活,强大,使用Spring DI的强大功能来创建S2所需的所需对象,否则S2将使用它自己的数据创建工厂创建框架组件。

答案 1 :(得分:1)

为什么不会你使用Spring插件?

它基本上是不可见的,使用Spring来创建你的动作(包括注入其他Spring bean)等。

Guice的@Inject对Spring bean,AFAIK一无所知,所以你要手动命名类,它们将通过普通的Java / Guice机制实例化,不会注入自己的Spring依赖关系(除非你手动,或通过AOP,或其他任何方式)。

您还需要使用非Spring机制在测试中进行注入,这很好,但除非您提供有关您的用例的更多详细信息,否则我真的没有理由绕过Spring插件提供的功能外的现成。