1.需要的JAR文件有:Spring和Struts2框架本身需要的JAR文件以及它們依賴的JAR文件,比如commons-logging.jar等。此外,還需要Struts2分發包中的Struts2-Spring-Plugin-x.xx.jar。
二、在web.xml中添加WebApplicationContext的對應配置以下兩種配置方式本質上是壹樣的。
監聽器可以在1中使用。Servlet 2.3及以上,對應配置如下:
& lt上下文參數& gt
& ltparam-name & gt;contextConfigLocation & lt/param-name & gt;
& lt參數值& gt/we b-INF/classes/application context . XML & lt;/param-value & gt;
& lt/context-param & gt;
& lt聽眾& gt
& lt偵聽器類& gtorg . spring framework . web . context . context loader listener & lt;/listener-class & gt;
& lt/listener & gt;
如果spring配置文件被命名為applicationContext.xml並放在WEB-INF目錄中,則不需要配置
2.servlet 2.3的以下版本不支持
& lt上下文參數& gt
& ltparam-name & gt;contextConfigLocation & lt/param-name & gt;
& lt參數值& gt/we b-INF/classes/application context . XML & lt;/param-value & gt;
& lt/context-param & gt;
& ltservlet & gt
& ltservlet-name & gt;contextLoaderServlet & lt/servlet-name & gt;
& ltservlet-class & gt;org . spring framework . web . context . context loader servlet & lt;/servlet-class & gt;
& lt啟動時加載& gt1 & lt;/load-on-startup & gt;
& lt/servlet & gt;
如果spring配置文件被命名為applicationContext.xml並放在WEB-INF目錄中,則不需要配置
3.在web.xml中加載WebApplicationContext後,就可以實現Spring和Struts2的集成了。有兩種集成方法,描述如下:
1.第壹種實現方法:
1)在Spring的配置文件中配置Struts的業務邏輯控制器類,註入業務邏輯控制器中引用的業務類。註意,業務邏輯控制器類必須配置為scope="prototype "!
例子如下:
& ltbean id = " log in action " class = " yaso . struts . action . log in action " & gt;
& ltproperty name = " log in Dao " ref = " log in Dao "/& gt;
& lt/bean & gt;
2)在struts.xml或等效的Struts2配置文件中配置操作時,請指定
& ltaction name = " log in action " class = " log in action " >
& ltresult name = " success " & gt/index . JSP & lt;/result & gt;
& lt/action & gt;
2.第二種實現方法:
1)業務類在Spring配置文件中配置,但業務邏輯控制器類不需要配置,Struts2的動作配置和Spring集成前壹樣。<操作>的class屬性指定業務邏輯控制器類的完全限定名。
2)業務邏輯控制器類中引用的業務類不需要自己初始化,Struts2的Spring插件會利用bean的自動組裝來註入業務類。事實上,業務邏輯控制器不是由Struts2創建的,而是由Struts2的Spring插件創建的。默認情況下,插件是按名稱組裝的,可以通過添加Struts2常量來修改匹配方法:設置方法為struts . object factory . spring . auto wire = typename,可選組裝參數如下:
A) name:相當於Spring配置中的autowire = "byname ",這是默認值。
b)類型:相當於彈簧配置中的autowire = "by type"。
C) auto:相當於彈簧配置中的autowire = "autodetect"。
D) constructor:相當於Spring配置中的autowire=" constructor "。
4.如果在Struts2中使用了多個object factory,您需要通過Struts2常量顯式指定object factory,如下所示:對象工廠= spring如果沒有使用多個對象工廠,可以省略這壹步。
第五,可以通過設置Struts2常量來指定是否使用Spring自己的類緩存機制。可以設置為true或false,默認為true。設置方法為:struts . object factory . spring . useclasscache = false。
6.至此,兩種方法的整合已經完成。對比這兩種整合方式,本質是壹樣的。不同的是,使用第二種自動裝配方式時,彈簧不匹配。