`
小杨学JAVA
  • 浏览: 886464 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring整合Struts2的两种方案

 
阅读更多

 

Spring整合Struts2的两种方案 收藏
一、需要的JAR文件为:Spring和Struts2框架本身需要的JAR文件以及他们所依赖的JAR文件,比如commons-logging.jar等等,另外还需要Struts2发布包中的struts2-spring-plugin-x.xx.jar。

二、在web.xml中增加WebApplicationContext的相应配置,以下两种配置方式本质是一样的。
1.         Servlet 2.3及以上版本可以使用监听器,相应配置如下:
<context-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<listener>
              <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
如果spring配置文件被命名为applicationContext.xml,并且放在WEB-INF目录下,则不需要配置<context-param>,因为ContextLoaderListener默认在WEB-INF目录下寻找名为applicationContext.xml的文件。若存在多个Spring配置文件,则在<param-value>中依次列出,之间以逗号隔开。
2.         Servlet 2.3以下版本由于不支持<listener>,需要配置<servlet>,格式如下:
<context-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<servlet>
              <servlet-name>contextLoaderServlet</servlet-name>
              <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
              <load-on-startup>1</load-on-startup>
</servlet>
如果spring配置文件被命名为applicationContext.xml,并且放在WEB-INF目录下,则不需要配置<context-param>,因为ContextLoaderListener默认在WEB-INF目录下寻找名为applicationContext.xml的文件,或者是名字为contextConfigLocation的ServletContext参数所指定的文件。由于该Servlet配置只是为了在容器启动时能启动ContextLoaderServlet使其工作,而不需要引用该Servlet,所以不需要配置<servlet-mapping>。
三、在web.xml中完成加载WebApplicationContext之后,接下来就可以做到Spring和Struts2的整合了。整合有两种方法,分别叙述如下:
1.         第一种实现方法:
1)        将Struts的业务逻辑控制器类配置在Spring的配置文件中,业务逻辑控制器中引用的业务类一并注入。注意,必须将业务逻辑控制器类配置为scope=”prototype”!
示例如下:
<bean id=”LoginAction” class=”yaso.struts.action.LoginAction”>
                     <property name=”loginDao” ref=”LoginDao”/>
</bean>
2)        在struts.xml或者等效的Struts2配置文件中配置Action时,指定<action>的class属性为Spring配置文件中相应bean的id或者name值。示例如下:
<action name=”LoginAction” class=”LoginAction”>
                     <result name=”success”>/index.jsp</result>
</action>
2.         第二种实现方法:
1)        业务类在Spring配置文件中配置,业务逻辑控制器类不需要配置,Struts2的Action像没有整合Spring之前一样配置,<action>的class属性指定业务逻辑控制器类的全限定名。
2)        业务逻辑控制器类中引用的业务类不需要自己去初始化,Struts2的Spring插件会使用bean的自动装配将业务类注入进来,其实业务逻辑控制器也不是Struts2创建的,而是Struts2的Spring插件创建的。默认情况下,插件使用by name的方式装配,可以通过增加Struts2常量来修改匹配方式:设置方式为:struts.objectFactory.spring.autoWire = typeName,可选的装配参数如下:
a)         name:等价于Spring配置中的autowire=”byName”,这是缺省值。
b)        type:等价于Spring配置中的autowire=”byType”。
c)         auto:等价于Spring配置中的autowire=”autodetect”。
d)        constructor:等价于Spring配置中的autowire=” constructor”。
四、如果原先在Struts2中使用了多个object factory,则需要通过Struts2常量显式指定object factory,方式如下:struts.objectFactory = spring;如果没有使用多个object factory,这一步可以省略。
五、可以通过设增加Struts2常量来指定是否使用Spring自身的类缓存机制。可以设定的值为true或false,默认为true。设置方式为:struts.objectFactory.spring.useClassCache = false。
六、至此,完成了两种方式的整合。比较这两种整合方式,其本质是一样的。不同之处在于,使用第二种自动装配的方式时,由于没有在Spring中配在web.xml

里面设置
 <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
  <filter-mapping>     
      <filter-name>struts2</filter-name>     
     <url-pattern>*.action</url-pattern>     
    </filter-mapping>     
      
    <filter-mapping>     
      <filter-name>struts2</filter-name>     
      <url-pattern>*.jsp</url-pattern>     
    </filter-mapping>  
----------struts2的action请求设置

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
   /WEB-INF/spring/application.xml,/WEB-INF/spring/applicationDao.xml
   ,/WEB-INF/spring/applicationAction.xml,/WEB-INF/spring/applicationService.xml 
  </param-value>
 </context-param>
 <listener>
  <listener-class>
   org.springframework.web.context.ContextLoaderListener
  </listener-class>
 </listener>

配置spring管理相关组件。。

 

分享到:
评论

相关推荐

    Struts和Spring两种整合方式

    Struts和Spring两种整合方式 Struts+Spring Struts和Spring两种整合方式 Struts+Spring

    Spring + struts 整合的三种主要方式

    1.使用Spring 的 ActionSupport 2.使用Spring 的 DelegatingRequestProcessor 类。 3.全权委托。

    struts和spring整合(两种实现方法)

    用DelegatingRequestProcessor和DelegatingActionProxy两种方法实现struts和spring的整合,不同的地方就在struts-config.xml文件中,当前文件中DelegatingRequestProcessor是注释的。

    spring整合struts2的方法

    spring 整合strus2的两种方式,非常适合初学者

    最新版本的Struts2+Spring4+Hibernate4三大框架整合(改进:增加整合Quartz和Gson)

    一、 项目名称:S2316S411H436 项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 + Quartz2.2.1 二、 项目目的: 整合使用最新版本的三大...(3) 提供两种声明式事务管理器方案:二选一,请注释或删除其他方案

    Spring整合Struts2的两种方法小结

    下面小编就为大家带来一篇Spring整合Struts2的两种方法小结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    用 Spring 更好地处理 Struts 动作三种整合

    这两种框架都具有自己的优点和缺点,尽管大部分人同意 Struts 在 MVC 方面仍然是最好的。很多开发团队已经学会在时间紧迫的时候利用 Struts 作为构造高品质软件的基础。Struts 具有如此大的推动力,以至于开发团队...

    struts2+spring整合的系统

    使用struts2+spring整合,成功实现了登录以及非空验证功能。非常适合初学者去模仿学习,可以让初学者学习两种技术的整合。

    Struts,spring,Mybatis整合

    Struts,Spring和Mybatis的整合,里面有两种整合方式,只要学会其中的一种就可以了

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...

    三大框架整合(Spring+Hibernate+Struts1/Struts2)

    根据对三大框架的了解,该文件详细的描述了三大框架是如何整合到一起的(两种方法)

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...

    struts spring ibatis实例

    经过了一个上午的努力,最终搞定...本例中使用了两种不同的方式整合,请注意区分. 偶现在对这些框架的了解不是很深,希望能跟大家多多交流, 如果各位兄弟有什么好的方法或是附件中代码有需改进的地方,请提出来讨论讨论.

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...

    Struts2 in action中文版

    9.1 为什么在Struts 2中使用Spring 196 9.1.1 依赖注入能做些什么 197 9.1.2 Spring如何管理对象和注入依赖 199 9.1.3 使用接口隐藏实现 200 9.2 将Spring添加到Struts 2 202 9.2.1 让Spring管理动作、拦截器和结果...

    J2EE 企业应用实战:Struts Spring Hibernate 整合开发 part2

    J2EE企业应用实战:Struts Spring Hibernate 整合开发 分卷2 PDF 有书签 清晰 详尽而细致地介绍了JSP 各个方面,包括JSP 2.0 的规范、Struts的各种用法、Hibernate 的详细用法,以及Spring 的基本用法。书中所介绍的...

    轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发part2-2

    本书介绍作者多年J2EE开发经验的总结,内容涉及Struts、Spring和Hibernate三个开源框架,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。是一本介绍Struts+Spring+Hibernate 整合...

    J2EE 企业应用实战:Struts Spring Hibernate 整合开发 part1

    J2EE企业应用实战:Struts Spring Hibernate 整合开发 分卷1 PDF 有书签 清晰 详尽而细致地介绍了JSP 各个方面,包括JSP 2.0 的规范、Struts的各种用法、Hibernate 的详细用法,以及Spring 的基本用法。书中所介绍的...

    struts2+spring2.5.6所需要的包

    最近在做一个java的项目涉及到struts和spring两种框架,但是在整合的过程中总会报错,经过多方测试,原来是jar包的问题,现在我把整合成功的jar包上传上来,希望能够帮助大家。(导入上面的包以后就不需要再导入其他...

    Spring攻略(第二版 中文高清版).part2

    6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4 将Spring与JSF集成 226 6.4.1 问题 226 6.4.2 解决方案 226 6.4.3 工作原理 227 6.5 将Spring与DWR...

Global site tag (gtag.js) - Google Analytics