ssh之Spring整合struts
概述
Struts2 通过插件实现和 Spring 的整合.
Struts2 提供了两种和 Spring整合基本的策略:
将 Action 实例交给 Spring 容器来负责生成, 管理, 通过这种方式, 可以充分利用 Spring 容器的 IOC 特性, 提供最好的解耦
利用 Spring 插件的自动装配功能, 当 Spring 插件创建 Action 实例后, 立即将 Spring 容器中对应的业务逻辑组件注入 Action 实例.
让 Spring 管理控制器
将 Action 实例交给 Spring 容器来负责生成, 管理, 通过这种方式, 可以充分利用 Spring 容器的 IOC 特性, 提供最好的解耦
整合流程:
安装 Spring 插件: 把 struts2-spring-plugin-2.2.1.jar 复制到当前 WEB 应用的 WEB-INF/lib 目录下
在 Spring 的配置文件中配置 Struts2 的 Action 实例
在 Struts 配置文件中配置 action, 但其 class 属性不再指向该 Action 的实现类, 而是指向 Spring 容器中 Action 实例的 ID
自动装配
利用 Spring 插件的自动装配功能, 当 Spring 插件创建 Action 实例后, 立即将 Spring 容器中对应的业务逻辑组件注入 Action 实例.
配置自动装配策略: Spring 插件的自动装配可以通过 struts.objectFactory.spring.autoWire 常量指定, 该常量可以接受如下值:
name: 根据属性名自动装配.
type: 根据类型自动装配. 若有多个 type 相同的 Bean, 就抛出一个致命异常; 若没有匹配的 Bean, 则什么都不会发生, 属性不会被设置
auto: Spring 插件会自动检测需要使用哪种方式自动装配方式
constructor: 同 type 类似, 区别是 constructor 使用构造器来构造注入所需的参数
整合流程:
安装 Spring 插件
正常编写 struts 配置文件
编写 spring 配置文件, 在该配置文件中不需要配置 Action 实例