配置在struts 2的action类中进行spring依赖注入?

时间:2012-01-20 09:43:27

标签: spring dependency-injection struts2

我有传统的j2ee项目,它使用带弹簧的struts 2。现在当我把调试器放在第一个方法调用中 class,我发现所有实例变量dependecies都是自动注入的。我的意思是我们在哪里配置依赖 注入struts中的动作类?我也探索了web.xml,我找不到任何相关的东西?

2 个答案:

答案 0 :(得分:1)

如果Spring用于为struts2注入依赖项,其中包括结果/操作等,这意味着您的代码必须使用Struts2-Spring plugin。默认情况下,Struts2使用自己的Object因子来创建Action类/结果的实例和拦截器等 为了使用Spring,需要告诉Struts2要使用哪个对象创建工厂。因为我们需要在struts.xml文件或struts.properties文件中定义以下条目

struts.xml中

<struts>
  <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
  ... 
</struts>

struts.properties

struts.objectFactory = org.apache.struts2.spring.StrutsSpringObjectFactory

我相信在你的web.xml中你会找到一个Spring ContextLoaderListener的条目,它将从类路径加载applicationContext xml文件。

当使用Spring时,操作将在其xml文件中由spring创建,并且在操作配置文件中使用bean引用代替Action Class名称。

所以你需要在项目中检查applicationContext.xml,其中Action将作为prototype bean启动,并在struts.xml文件中使用那些bean引用来定义Struts2 Action类< / p>

答案 1 :(得分:1)

你的struts配置(struts.xml)是否包含这样的元素?:

<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />

http://struts.apache.org/2.2.3/docs/spring-plugin.html

了解详情