程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 如何使用Spring來管理Struts中的Action

如何使用Spring來管理Struts中的Action

編輯:關於JAVA

當指定struts.objectFactory為spring時,struts2框架就會把bean轉發給spring來創建,裝配,注入。但是bean創建完成之後,還是由struts容器來管理其生命周期。配置方式:

(1)struts.xml中:

xml 代碼:

< constant name="struts.objectFactory" value="spring" />

(2)struts.properties中:

java 代碼:

struts.objectFactory=spring

通常情況下,這樣子就夠了,然後在struts的action-mapping配置文件中,如下:

xml 代碼:

< action name="user" class="com.myapp.admin.web.action.user.UserAction">

即可,如果在Action中有依賴於其它的BEAN,也會被自動注入進來。這時候,Action實例是以prototype方式創建的,SPRING會為每個請求創建一個ACTION的實例。

在某些時候,你可能希望不僅僅讓SPRING創建和裝配Action對象,還希望讓SPRING完全管理這些對象,如希望使用AOP或者希望使用acegi時。這時候,只需要在spring的配置文件中定義這些action 即可。如在applicationContext.xml文件中:

xml 代碼:

< bean id="user" class="com.myapp.web.action.user.UserAction"/>

然後在action-mapping中,指定class="user"即可。

需要注意的一個地方:Spring中的缺省作用域是Singleton作用域。而往往Action屬於有狀態的bean,應該使用prototype作用域。

< bean id="user" class="com.myapp.web.action.user.UserAction" singleton="false"/>

如果忽略這個細節,在我們方便實用set,get方法處理數據的時候,可能會有線程安全上的風險。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved