`
soartju
  • 浏览: 248736 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Struts整合方案汇总小结

阅读更多
Spring和Struts整合的方案有很多种,整理如下:

第一种 Listener方式
将Spring服务作为web容器的Listener,随web服务器启动而启动
   1、需要在web.xml中配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

   2、然后在Struts的action中通过
ServletContext sc = this.getServlet().getServletContext();
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(sc);
ctx.getBean("xxx");

完成托管Bean的获取。

第二种 Load on Startup Servlet方式
将Spring服务作为web容器的load on startup Servlet,随web服务器启动而启动,这种方式和第一种基本是一样的,只是spring加载的时间会比第一种晚一些,servlet2.3标准,listener的加载早于startup servlet的加载
   1、这种方式需要在web.xml中配置
<servlet>
<servlet-name>contextLoader</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

   2、这种整合方案,获取bean的方法,和第一种方式相同

第三种 Struts Plugin+Spring DelegatingRequestProcessor方式
前两种方式,都没有将struts的action纳入spring管理,接下来的要说的两种方式比较类似,放在一起说明,都是可以将Struts的action纳入到Spring管理的方式。
   1、通过Struts的Plugin方式,在应用启动时加载Spring容器,既然是Struts的Plugin,当然是在struts-xxx.xml文件中进行配置,增加如下Plugin:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml,/WEB-INF/applicationContext_xxx.xml"/>
</plug-in>

   2、Struts是通过ActionServlet处理请求的,而代码实现上是通过RequestProcessor进行处理的,通过Spring的RequestProcessor子类-DelegatingRequestProcessor,可以替代原有的Struts请求处理方式,从而转到Spring容器中进行处理。因此需要更改原有的Struts RequestProcessor行为,使用Spring自己的DelegatingRequestProcessor,这需要在struts-xxx.xml中配置,增加如下配置:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

   3、经过上面的配置,现在struts的action已经交给spring来管理了,spring的DelegatingRequestProcessor会处理web请求,将请求转发给struts-xxx.xml中定义的action,而这些action又是通过spring管理的,因此原来的struts配置文件中的action配置:<action path="/login" name="loginForm" type="com.soar.loginAction">...</action>中的type就可以省略了,改成<action path="/login" name="loginForm">...</action>,而type的设置则放到spring的配置文件中,上文中指定了两个spring配置文件/WEB-INF/applicationContext.xml,/WEB-INF/applicationContext_xxx.xml,我们在其中一个文件中加入:
<bean name="/login" class="com.soar.loginAction" singleton="false">
 <property name="xx">
   <value>just a String property</value>
 </property>
 </property>
</bean>

这和对待普通的bean没有什么区别了,但是名字是struts配置文件中指定的path指定的值"/login",设置singleton="false"是每请求一次,生成一个action(和struts1默认策略不同)
这样就完成了spring与struts的整合以及spring管理action

待继...
分享到:
评论

相关推荐

    spring和struts整合的三种方案

    以下是整合 Spring 和 Struts 的三种方案的详细说明: 1. **使用 ContextLoaderPlugIn 插件** 在这种方案中,我们通过在 `struts-config.xml` 文件中添加 `ContextLoaderPlugIn` 类来启动 Spring 的 IOC 容器。`...

    Struts2整合Spring、JPA

    Struts2整合Spring和JPA是企业级Java应用开发中常见的技术组合,它们分别负责不同的职责:Struts2作为一款成熟的MVC框架,主要用于处理Web层的请求与响应;Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和...

    spring与struts2整合

    Spring 和 Struts2 是两个...总之,Spring 和 Struts2 的整合利用了两者的优势,提供了一种强大的方式来构建可扩展、易于维护的 Java Web 应用。通过深入学习和实践,开发者可以掌握这种整合技巧,并在实际项目中应用。

    Spring与Struts2整合

    Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,而Struts2则以其优秀的MVC设计模式著称,两者整合可以构建出高效、可维护的Web应用。下面将详细介绍Spring与Struts2整合的相关知识点。 **一、整合背景*...

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

    ### Spring与Struts整合的三种主要方式 在Java Web开发领域,Spring框架和Struts框架都是非常重要的技术。Spring框架以其强大的依赖注入(DI)和面向切面编程...开发者可以根据项目的实际需求选择最适合的整合方案。

    spring_struts_hibernate整合开发书籍

    《Spring+Struts+Hibernate整合开发》是一本深入讲解企业级Java应用开发的书籍,它主要聚焦于三大著名开源框架——Spring、Struts和Hibernate的集成与应用。这些框架是Java Web开发中的基石,广泛应用于各种复杂的...

    Spring+Struts+Hibernate比较详细的整合配置方案

    【Spring+Struts+Hibernate整合配置方案】 Spring、Struts和Hibernate是Java Web开发中三大核心框架,它们各自负责不同的职责:Spring作为依赖注入容器和面向切面编程(AOP)框架,提供应用的结构和事务管理;Struts...

    Spring与struts整合开发实例

    Spring与struts整合主要有三种方式,通过Spring的ActionSupport类,通过Spring的DelegatingRequestProcessor类、通过Spring的DelegatingActionProxy类。

    spring_struts整合jar包

    2. **Spring MVC与Struts2的集成**:虽然两者都有MVC模式,但在整合时,通常会使用Struts2来处理请求的路由和响应,而Spring MVC则处理更复杂的视图解析和数据绑定。 3. **Spring事务管理**:Spring提供了强大的...

    Spring整合Struts

    Spring与Struts的整合提供了灵活且强大的Web应用开发解决方案。无论是通过ContextLoaderPlugin还是继承ActionSupport类,开发者都可以根据项目的需求选择最合适的整合策略。通过利用Spring的DI和AOP特性,以及Struts...

    Spring和Struts整合例子

    通过整合Spring和Struts,你可以享受到两者带来的便利,比如Spring的IOC和AOP能力,以及Struts2的MVC架构和丰富的插件支持。在学习和实践中,不断探索和优化这些配置,将有助于提升你的Java Web开发技能。

    JPA+Spring+Struts整合实例,JPA+Spring+Struts整合实例

    在Java Web开发领域,JPA(Java Persistence API)、Spring框架和Struts框架的整合是常见的技术栈,它们各自扮演着不同的角色,共同构建出高效、灵活的Web应用程序。下面将详细介绍这三个关键技术及其整合过程。 **...

    spring3.2.6struts2.3.15MyBatis3整合DEMO

    《Spring 3.2.6、Struts 2.3.15与MyBatis 3整合实战详解》 在Java Web开发领域,Spring、Struts和MyBatis是三大主流框架,它们各自承担着不同的职责,共同构建了一个强大的企业级应用开发环境。本DEMO以Spring ...

    spring与struts整合开发包

    将这两个框架整合在一起,可以利用Spring的强大功能,如依赖注入(DI)和面向切面编程(AOP),以及Struts提供的优秀用户界面和请求处理能力。接下来,我们将详细探讨Spring和Struts整合开发中的关键知识点。 1. **...

    Struts+Spring+Hibernet整合例子

    Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子

    spring+struts2整合源码

    本文将基于"spring+struts2整合源码"的标题和描述,详细讲解Spring和Struts2的整合过程,以及整合过程中涉及的关键知识点。 首先,Spring和Struts2整合的主要目的是实现业务逻辑层和表现层的解耦,提高代码的可测试...

    struts 整合spring 例子,测试通过

    Struts2 和 Spring 整合是Java开发中常见的实践,主要目的是为了利用Spring的强大功能,如依赖注入(DI)和面向切面编程(AOP),同时保持Struts2的MVC架构的优势。以下是对整合过程的详细说明: 首先,Spring框架...

    Spring与Struts 2整合.zip

    整合Spring和Struts 2的主要目的是将Spring的依赖注入和管理能力引入到Struts 2的Action中,以及利用Spring的AOP进行事务管理。整合步骤通常包括以下几个部分: 1. **添加依赖**:在项目中引入Spring和Struts 2的库...

    spring struts2 hibernate ehcache整合

    在IT行业中,Spring、Struts2和Hibernate是Java企业级应用开发中常见的三大框架,而Ehcache则是一个广泛使用的缓存解决方案。这篇博客“spring struts2 hibernate ehcache整合”显然探讨了如何将这四个组件集成到同...

    struts1 spring ibatis整合项目源码

    struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码

Global site tag (gtag.js) - Google Analytics