strut2提供了一種非常簡單的方式來實現與spring的整合,記得以前用struts1還要改配置文件,struts通過一種“可插撥式”的插件,實現了與Spring框架的整合。在實現應用中,只需要把struts2-spring-plugin-x.x.x.x.jar(其中的xxxx為版本號)文件拷到應用的lib下即可。
Struts2提供了兩種基本的整合策略:
1. 將Action實例交給Spring容器來負責生成,管理,通過這種方式,可以充分利用Spring容器的IOC特性,提供最好的解耦;
2. 利用Spring插件的自動裝配方式,當Spring插件創建Action實例之后,立即將Spring窗口中對應的業務邏輯組件注入Action實例。
下面看看兩個實例:
首先:把spring.jar commons-logging.jar及struts2-spring-plugin-x.x.x.x.jar等相關的包拷到lib下,修改web.xml:添加linstener
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
這樣配置之后,Spring自動查找WEB-INF路徑下的applicationContext.xml配置文件。當然也可以自己指定配置文件,則需要在web.xml中<context-param>元素,如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/my.xml</param-value>
</context-param>
1.用第一方式實現struts2與spring的整合















































































(4)業務邏輯接口(MyService.java):




























2.使用自動裝配方式整合
(1)指定自動裝配的策略,讓Spring 自動管理Bean與Bean之間的依賴有關系,無需使用ref顯式指定依賴Bean ,Spring容器會自動檢查XML配置文件內容,為主調Bean 注入依賴Bean。Spring 提供了3種裝配策略,通過修改struts.objectFactory.spring.autoWire常量指定,可接受的3個值:
1.name:根據屬性名自動裝配,這個是默認值。
2.type根據屬性類型自動裝配
3.auto自動檢測需要使用哪種自動裝配方式
在上面的簡單應用中,只需要修改配置文件即可:
1.修改struts.xml配置文件:class屬性與沒有整合時一樣的。。


























