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 实例