Struts 2整合Spring 經典

2021-04-18 13:02:33 字數 2416 閱讀 1919

struts 2整合spring struts 2框架為整合其他技術提供了良好的可擴充套件性,可以通過外掛程式的方式來實現同spring技術的整合。

13.2.1  整合步驟 struts 2框架整合spring很簡單,下面是整合的步驟。

(1)複製檔案。複製struts2-spring-plugin-x-x-x.jar和spring.jar到web-inf/lib目錄下。其中的x對應了spring的版本號。 還需要複製commons-logging.jar檔案到web-inf/lib目錄下。

(2)配置struts.objectfactory屬性值。  在struts.properties中設定struts.objectfactory屬性值:  struts.objectfactory = spring

或者在struts.xml檔案中進行常量配置:  

(3)配置spring***。在web.xml檔案中增加如下內容:

org.springframework.web.context.contextloaderlistener  

contextconfiglocation

(5)修改struts配置檔案。struts 2框架整合spring框架,需要在struts配置檔案中有所改變,下面是乙個示例:

該配置檔案中定義了兩個action配置:foo是乙個標準的struts 2框架action配置,指定了action實現類為com.acme.foo; bar對應的class並不存在,那麼框架將在spring配置檔案中查詢id屬性為「bar」的定義,該配置檔案如下所示:

13.2.2  整合原理 struts2與spring的整合要用到spring外掛程式包struts2-spring-plugin-x-x-x.jar,這個包是同struts2一起發布的。 spring外掛程式是通過覆蓋(override)struts2的objectfactory來增強核心框架物件的建立。當建立乙個物件的時候, 它會用struts2配置檔案中的class屬性去和spring配置檔案中的id屬性進行關聯,如果能找到,則由spring建立, 否則由struts 2框架自身建立,然後由spring來裝配。spring外掛程式具體有如下幾個作用:

? 允許spring建立action、interceptror和result。

? 由struts建立的物件能夠被spring裝配。

? 如果沒有使用spring objectfactory,提供了2個***來自動裝配action。

★ 注意 ★

struts2-spring-plugin-x-x-x.jar外掛程式中有乙個struts-plugin.xml檔案,該檔案內容如下所示:

其中設定了struts 2框架常量struts.objectfactory的值為spring,實際上,spring是org.apache.struts2.spring.strutsspringobjectfactory 類的縮寫,預設情況下所有由struts 2框架建立的物件都是由objectfactory例項化的,objectfactory提供了與其他ioc容器如 spring、pico等整合的方法。覆蓋這個objectfactory的類必須繼承objectfactory類或者它的任何子類,並且要帶有乙個不帶引數的構造方法。 在這裡用org.apache.struts2.spring.strutsspring objectfactory代替了預設的objectfactory。

如果action不是使用spring objectfactory建立的話,外掛程式提供了兩個***來自動裝配action,預設情況下框架使用的自動裝配策略是name, 也就是說框架會去spring中尋找與action屬性名字相同的bean,可選的裝配策略還有:type、auto、constructor,開發者可以通過常量struts.objectfactory.spring.autowire來進行設定。

★ 說明 ★

struts 2框架整合spring後,處理使用者請求的action並不是struts框架建立的,而是由spring外掛程式建立的。建立例項時,不是利用配置 action時指定的class屬性值,根據bean的配置id屬性,從spring容器中獲得相應的例項。

struts2整合spring步驟

1.匯入spring的核心包 spring.jar 二者整合開發所需的包 struts spring plugin 2.0.6.jar 2.修改web.xml配置檔案 配置spring載入上下文時的 org.springframework.web.context.contextloaderliste...

實現Spring與Struts 2整合

實現spring與struts 2整合 如何實現spring與struts 2框架的整合呢?其實非常簡單,這是因為struts 2框架主要是通過外掛程式來實現對其他框架的支援。spring框架與struts 2框架的整合過程非常簡單,因為struts 2框架中已經提供了關於spring框架的外掛程式...

Struts2整合Spring2入門

1.新增spring支援 2.新增struts2的spring外掛程式 struts2 spring plugin 2.0.11.jar 3.在web.xml中新增 啟動spring容器 org.springframework.web.context.contextloaderlistener 4....