我有传统的j2ee项目,它使用带弹簧的struts 2。现在当我把调试器放在第一个方法调用中
class,我发现所有实例变量dependecies都是自动注入的。我的意思是我们在哪里配置依赖
注入struts中的动作类?我也探索了web.xml
,我找不到任何相关的东西?
答案 0 :(得分:1)
如果Spring用于为struts2注入依赖项,其中包括结果/操作等,这意味着您的代码必须使用Struts2-Spring plugin。默认情况下,Struts2使用自己的Object因子来创建Action类/结果的实例和拦截器等 为了使用Spring,需要告诉Struts2要使用哪个对象创建工厂。因为我们需要在struts.xml文件或struts.properties文件中定义以下条目
<struts>
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
...
</struts>
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" />
了解详情