首页 > 编程语言 > 详细

Spring整合Struts

时间:2015-12-03 00:26:33      阅读:405      评论:0      收藏:0      [点我收藏+]

在Action中需要使用到Service类,这时候需要注入,那么整合的方案有2种:

1.(不常用)让Action依赖Spring工厂,通过Spring工厂拿出业务逻辑类,顺便注入DAO,这时Service是不需要set( )方法的

技术分享

action运行之后,会加载配置文件applicationContext.xml,然后去配置文件里面植入相应的依赖类,这种方法的缺点正在于此,每次有个请求来的时候,到达action就会加载一次配置文件,就会创建多个配置文件的实例,破坏了单例。

 

2:整合方案: 我们应该在项目启动的时候就加载Spring配置文件,并且放到application内置对象(全局的,大家都可以用)
     *
     * 在创建Action到Spring配置文件中获取,那么只要Action能创建 Action-->Service-->Dao就会依赖注入

此方案需要三步走:

       1: 配置监听器,加载Spring的配置文件
     *
     * 2: 默认情况下,Action是Struts创建,我们需要交给Spring管理并且要让Spring创建
     *
     * 加载 struts2-spring-plugin-2.1.6.jar
     *
     * 注意: 此包加载之后,创建Action就会到Spring中去获取,所以在非整合的情况,不要加载此包,否则会报错
     *
     * 3: Action class属性:整合的时候修改为 Spring 配置中的id的名字

    技术分享

 

<!-- 配置Spring文件路径 -->因为ServletContextListener监听器默认是到web—INF目录下去找的,不配置会找不到applicationCotext,报错
    <context-param>
        <!-- 用来加载Spring配置文件路径 -->
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/。。。自己的配置文件在哪里/applicationContext.xml</param-value>
    </context-param>
 
  <listener>
      <!-- ContextLoaderListener实现ServletContextListener,而ServletContextListener在项目启动的时候就运行
            它是用来专门加载Spring配置文件监听器
      -->
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

Spring整合Struts

原文:http://www.cnblogs.com/2027437606qq/p/5014399.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!