當指定strutsobjectFactory為spring時struts框架就會把bean轉發給spring來創建裝配注入但是bean創建完成之後還是由struts容器來管理其生命周期配置方式
()strutsxml中
xml 代碼
<constant name=strutsobjectFactory value=spring />
()strutsproperties中
java 代碼
struts
objectFactory=spring
通常情況下這樣子就夠了然後在struts的actionmapping配置文件中如下
xml 代碼
<action name=user class=commyappadminwebactionuserUserAction></action>
即可如果在Action中有依賴於其它的BEAN也會被自動注入進來這時候Action實例是以prototype方式創建的SPRING會為每個請求創建一個ACTION的實例
在某些時候你可能希望不僅僅讓SPRING創建和裝配Action對象還希望讓SPRING完全管理這些對象如希望使用AOP或者希望使用acegi時這時候只需要在spring的配置文件中定義這些action 即可如在applicationContextxml文件中
xml 代碼
<bean id=user class=commyappwebactionuserUserAction/>
然後在actionmapping中指定class=user即可
需要注意的一個地方Spring中的缺省作用域是Singleton作用域而往往Action屬於有狀態的bean應該使用prototype作用域<bean id=user class=commyappwebactionuserUserAction singleton=false/> 如果忽略這個細節在我們方便實用setget方法處理數據的時候可能會有線程安全上的風險
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28504.html