【发布时间】:2012-06-14 08:08:32
【问题描述】:
我有一个基于 struts2 的旧版 Web 应用程序(主要使用注释)。在调试时,我发现所有依赖项(如服务层和 dao 层)
在struts 2动作中自动注入。我期待必须在struts.xml 中定义一些弹簧拦截器,它必须这样做。
但是我在那里没有找到任何与 spring 相关的拦截器。同样在web.xml 中,我没有找到任何必须从事此类工作的相关内容。
我不确定如何在 struts2 动作中注入依赖项(使用 spring)...
我可以在类路径中看到struts2-convention-plugin-2.2.3.1.jar 文件。这是否意味着filterDispatcher 在运行时查找此 jar,如果找到,则在操作中注入依赖项。在此过程中是否有任何拦截器也有帮助?
【问题讨论】:
-
我们能看到配置示例,以及注入依赖项的对象示例吗?
-
所以你说你的 web.xml 中没有定义 spring 监听器?
-
@fmucar 我在 web.xml 中看到了 ContextLoaderListener,它读取了针对 web.xml 中的参数 contextConfigLocation 参数给出的 xam 文件。但这只会实例化单例 bean,而不是原型或请求范围。正确的?要在行动中注入原型 bean,必须通过拦截器或插件来完成?
-
你有struts2-spring-plugin作为你的依赖吗?是struts2+spring集成的一种方式。您的应用可能正在使用一些自定义解决方案。侦听器管理所有 spring bean,但它仍然需要在某些时候拦截操作才能注入依赖项。向我们展示一些配置
-
@MSach:你能找到
struts2-spring-plugin,因为这个插件负责将控制权交给Spring DI