如果使用Spring管理了Struts2的Action实例,则Spring默认是使用了单例模式,这和Struts2的设计刚好是相悖的。
这种情况尤其在使用自动扫描装配和逻辑Action时更加难以处理,不过天下没有处理不了的事,只是缺少处理的方法。
用点力还是可以处理的。
Struts2的Action经由Spring创建,是否单例,依赖于struts.xml的action节点的配置。
以下方式spring将产生单例的Action,必须在Action上加上scope
<action name="testAction" class="testAction" ></action>
而以下的方式将非单例的Action
<action name="testAction" class="com.test.TestAction" ></action>
<action name="testAction" class="testAction" ></action>
而以下的方式将非单例的Action
<action name="testAction" class="com.test.TestAction" ></action>
就是说如果你想单实例,在配置Action的时候加上类的包名和路径即可。
本文探讨了Spring管理Struts2 Action实例时采用单例模式的问题,并提供了通过配置避免此问题的方法。

5400

被折叠的 条评论
为什么被折叠?



