首页
登录 | 注册

“玩转”Java系列—Spring 整合 Struts2 详解

 更多Java培训Java视频教程学习资料,请登录尚硅谷网站下载:www.atguigu.com 

1. 整合目标:使 Spring 的 IOC 容器管理 Struts2 的 Action

2. 步骤概览:
     1). 在 WEB 应用中加入 Struts2
             ①. 加入 jar 包
             ②. 在 web.xml 文件中进行一些配置
             ③. 加入 Struts2 自身的配置文件
      2). 在 WEB 应用中加入 Spring
             ①. 加入 jar 包
             ②. 加入 Spring 的配置文件
             ③. 在 web.xml 文件中配置启动 IOC 容器的 Listener
      3). 整合
             ①. 加入 Spring 插件
             ②. 在 Spring 的配置文件中配置 Struts2 的 Action 实例
             ③. 在 Struts 配置文件中配置 action
       4). 原理分析

3. 在 WEB 应用中加入 Struts2
 1). 参照 struts-2.3.15.3-all\struts-2.3.15.3\apps 下的 struts2-blank.war
 2). 解压 struts-2.3.15.3-all\struts-2.3.15.3\apps 下的 struts2-blank.war 到当前文件夹
 3). 加入 jar 包:把 struts2-blank\WEB-INF\lib\I.jar 复制到当前 WEB 应用的 WEB-INF 的 lib 目录下
 4). 打开 struts-2.3.15.3\apps\struts2-blank\WEB-INF\web.xml 文件,复制 filter 部分到当前 WEB 应用的 web.xml 文件中


struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2
/B

 5).复制 struts-2.3.15.3\apps\struts2-blank\WEB-INF\classes 下的 struts.xml 文件到当前 WEB 应用的 src 目录下,并删除部分配置,只保留如下内容:






 4. 在 WEB 应用中加入 Spring:
  1). 加入 Spring 的 jar 包:注意:需要加入 WEB 应用的 spring-web-4.0.0.RELEASE.jar,因为 Struts2 中已经包含了 commons-logging 的 jar 包,所以这里可以不添加 commons-logging

spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
spring-web-4.0.0.RELEASE.jar

  2).在类路径下加入 Spring 的配置文件(也可以放在其它路径下)

  3). 在 web.xml 文件中配置启动 IOC 容器的 Listener

  i. 配置 Spring 配置文件的位置


 contextConfigLocation
 classpath:applicationContext.xml

ii. 配置启动 IOC 容器的 Listener


 
org.springframework.web.context.ContextLoaderListener

5. Spring整合 Struts2:
 1). 加入 Spring 插件:复制 struts-2.3.15.3-all\struts-2.3.15.3\lib\struts2-spring-plugin-2.3.15.3.jar 到当前 WEB 应用的 lib 下
 2).在 Spring 的配置文件中配置 Struts2 的 Action 实例,注意:需要配置 scope 属性为 prototype,因为 Struts2 的 Action 不是单例的!
例如:
 class="com.atguigu.ss.action.UserAction" scope="prototype">
 

 3).在 Struts 配置文件中配置 action, 但其 class 属性不再指向该 Action 的实现类, 而是指向 Spring 容器中 Action 实例的 ID
例如:

 /success.jsp

6. Spring 整合 Struts2 原理解析:
Struts2与Spring的集成要用到Spring插件包struts2-spring-plugin-x-x-x.jar。Spring插件是通过覆盖Struts2的ObjectFactory来增强核心框架对象的创建。当创建一个对象的时候,它会用Struts2配置文件中的class属性去和Spring配置文件中的id属性进行关联,如果能找到,则由Spring创建,否则由Struts 2框架自身创建,然后由Spring来装配。

struts2-spring-plugin-2.3.15.3.jar 下的 struts-plugin.xml 文件的代码片段:


相关文章

  •  更多Java培训.Java视频教程学习资料,请登录尚硅谷网站下载:www.atguigu.com  1.开发中主要使用 Spring 的什么技术 ?①. IOC 容器管理各层的组件②. 使用 AOP 配置声明式事务③. 整合其他框架.2. ...
  • 更多Java培训.Java视频教程学习资料,请登录尚硅谷网站下载:www.atguigu.com  1.Javaweb技术的结构 1.2. 结构图说明:整体分为四个部分:1. 黑线: JavaScript相关技术路线2. 蓝线: Servl ...
  •  更多Java培训.Java视频教程学习资料,请登录尚硅谷网站下载:www.atguigu.com  ?1. 背景及目标? 厦门游家公司(4399.com)用于员工培训和分享.? 针对用户群为已经使用过mysql环境,并有一定开发经验的工程 ...
  •  更多Java培训.Java视频教程学习资料,请登录尚硅谷网站下载:www.atguigu.com  准备工作:setserveroutput onhellowrold程序begindbms_output.put_line('hello w ...
  • 更多Java培训.Java视频教程学习资料,请登录尚硅谷网站下载:www.atguigu.com   Tomcat 中运用的许多经典设计模式,如模版模式.工厂模式和单例模式等.通过学习它们的实践运用能给我们以后的软件设计起到一定的借鉴作用. ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.014 s.
京ICP备10005923号