spring的官方定義是:乙個輕量級的ioc和aop容器框架,它使用了一種叫做依賴注入的技術。
所謂依賴注入,就是指將建立物件以及協議依賴物件之間合作的責任從物件自身中轉移到「工廠」中去,這個「工廠」通常由ioc容器提供。
struts2 與spring的整合要用到spring外掛程式包,這個包是同struts2一起發布的。spring外掛程式是通過覆蓋(override)struts2的 objectfactory來增強核心框架物件的建立。當建立乙個物件的時候,它會用struts2配置檔案中的class屬性去和spring配置檔案 中的id屬性進行關聯,如果能找到則由spring建立,否則由struts2框架自身建立,然後由spring來裝配。spring外掛程式具體有如下幾個 作用:
1. 允許spring來建立action、interceptror和result
2. 由struts建立的物件能夠被spring裝配
3. 提供了2個***來自動裝配action,如果沒有使用spring objectfactory的話
要實現與struts與spring的整合有如下幾步
1.將struts2-spring-plugin-2.0.8.jar檔案包含到我們的應用中,放到web-inf/lib目錄下面即可。在這個外掛程式包中有個struts-plugin.xml檔案,它的內容如下:
class="org.apache.struts2.spring.strutsspringobjectfactory" />
class="com.opensymphony.xwork2.spring.interceptor.actionautowiringinterceptor"/>
class="org.apache.struts2.spring.interceptor.sessioncontextautowiringinterceptor"/>
這 裡它將框架常量struts.objectfactory覆蓋了,設定為」spring」,其實這裡是使用了縮寫,我們可以寫全 稱:org.apache.struts2.spring.strutsspringobjectfactory。這個縮寫的」spring」是和 bean配置中的name屬性相對應的。預設情況下所有由框架建立的物件都是由objectfactory例項化的,objectfactory提供了與 其它ioc容器如spring、pico等整合的方法。覆蓋這個objectfactory的類必須繼承objectfactory類或者它的任何子類, 並且要帶有乙個不帶引數的構造方法。在這裡我們用 org.apache.struts2.spring.strutsspringobjectfactory代替了預設的objectfactory。
此外,上面我們說了,如果action不是使用spring objectfactory建立的話,外掛程式提供了兩個***來自動裝配action,預設情況下框架使用的自動裝配策略是name,也就是說框架會去 spring中尋找與action屬性名字相同的bean,可選的裝配策略還有:type、auto、constructor,我們可以通過常量 struts.objectfactory.spring.autowire來進行設定。
2.配置spring***,將spring.jar包包含到應用中
將下面一段話插入到web.xml檔案中,同時將spring.jar檔案放到web-inf/lib目錄下面。
org.springframework.web.context.contextloaderlistener
3.利用spring配置檔案來註冊物件
contextconfiglocation
在Struts2中整合Spring詳細講解
spring的官方定義是 乙個輕量級的ioc和aop容器框架,它使用了一種叫做依賴注入的技術。所謂依賴注入,就是指將建立物件以及協議依賴物件之間合作的責任從物件自身中轉移到 工廠 中去,這個 工廠 通常由ioc容器提供。struts2與spring的整合要用到spring外掛程式包,這個包是同str...
在Struts2中整合Spring詳細講解
spring的官方定義是 乙個輕量級的ioc和aop容器框架,它使用了一種叫做依賴注入的技術。所謂依賴注入,就是指將建立物件以及協議依賴物件之間合作的責任從物件自身中轉移到 工廠 中去,這個 工廠 通常由ioc容器提供。struts2與spring的整合要用到spring外掛程式包,這個包是同str...
在Struts2中整合Spring詳細講解
spring的官方定義是 乙個輕量級的ioc和aop容器框架,它使用了一種叫做依賴注入的技術。所謂依賴注入,就是指將建立物件以及協議依賴物件之間合作的責任從物件自身中轉移到 工廠 中去,這個 工廠 通常由ioc容器提供。struts2與spring的整合要用到spring外掛程式包,這個包是同str...