`

Struts与Spring的集成

阅读更多
Struts与Spring的集成主要有两种方式,即DelegatingRequestProcessor和DelegatingActionProxy方式,这两种方式应用了Spring IOC来管理Struts的Action,顾名思义,两者即是在代理某对象,熟释Struts的必然知晓RequestProcessor和Action,Spring在这两处切入到页面层的请求链中(通过扩展Struts中的RequestProcessor、Action类),以便将截获的请求传入到Spring管理的Action实例中,从而实现页面层到服务层的有效衔接。配置在Struts 1.2.9 + Spring 2.0环境下通过。
 
1          DelegatingRequestProcessor
 
1.1   配置ContextLoaderPlugin加载Spring配置
 
Spring中的ContextLoaderPlugin类实现了Struts的PlugIn接口,用于加载Spring配置。
ContextLoaderPlugin默认加载为WEB-INF\${actionServletName}-servlet.xml,如果应用部署描述文件web.xml中配置:
 
  1. <servlet>  
  2. <servlet-name>actionServlet</servlet-name>  
  3. <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
  4. <init-param>  
  5.         <param-name>config</param-name>  
  6.         <param-value>/WEB-INF/struts-config.xml</param-value>  
  7. </init-param>  
  8. </servlet>  
 
ContextLoaderPlugin默认加载为WEB-INF\actionServlet-servlet.xml文件。我们需要在struts-config文件中加入:
 
 
  1. <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>  
 
如果有多个Spring配置文件,则可以如下使用:
 
  1. <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">  
  2.         <set-property property="contextConfigLocation"    
  3.             value="/WEB-INF/spring/applicationContext.xml,   
  4.     /WEB-INF/spring/actionContext.xml/>  
  5. </plug-in>  
 
1.2   配置DelegatingRequestProcessor转发请求
 
Struts中,ActionServlet通过RequestProcessor完成实际的请求转发,Spring中的DelegatingRequestProcessor扩展了Struts下的RequestProcessor类,要想DelegatingRequestProcessor完成请求转发就得在struts-config.xml文件中配置:
 
  1. <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>  
 
 
1.3   配置Struts中的Action
 
Struts配置文件struts-config.xml配置片段:
 
  1. <action-mappings>  
  2.        <!---->  
  3.        <action path="/PreAddEditBook" name="bookForm" scope="request">  
  4.            <forward name="AddEditBookJsp" path="/AddEditBook.jsp"/>  
  5.        action>  
  6. action-mappings>  
 
Spring配置文件actionContext.xml配置片段:
  1. <bean name="/PreAddEditBook" class="com.examples.action.PreAddEditBookAction"    
  2.        scope="singleton">  
  3.         <!-- Spring服务层接口 -->  
  4.         <property name="bookManager" ref=" bookManager"/>  
  5. </bean>  
2          DelegatingActionProxy
Spring中的这个DelegatingActionProxy类扩展了Struts中的Action类。
此种方式只需要在以上方式修改两处即可:
1)  将1.2的配置注释掉;
2)  1.3中Struts配置文件struts-config.xml中的action配置里加入type=”org.springframework.web.struts.DelegatingActionProxy”属性项。
3          两种方式比较
1)  两者的目的都是将请求转发给Spring管理的Bean;
2)  在请求转发给action之前,转发给Spring的Bean;DelegatingRequestProcessor
3)  被配置为Struts的action,所有请求由ActionServlet截获再转发到action(所有action的实现类都是DelegatingActionProxy),DelegatingActionProxy再将请求转发到Spring的Bean;DelegatingActionProxy
4)  占用了一个Struts的扩展点即RequestProcessor,用户如需扩展Struts的RequestProcessor,此时只能从DelegatingRequestProcessor作为基类扩展;DelegatingRequestProcessor
5)  相对较多地侵入了Struts原有的独立的配置,所有action的实现类都是DelegatingActionProxy,页面层不方便脱离Spring。DelegatingActionProxy

相关推荐

    第27讲--Struts与Spring集成方案1(Struts集成Spring)

    在"第27讲--Struts与Spring集成方案1(Struts集成Spring)"中,我们主要探讨如何将Struts2与Spring进行整合。集成的主要目的是利用Spring的强大功能来管理Struts2中的Action类,从而实现更灵活的依赖注入和更好的控制...

    第28讲--Struts与Spring集成方案2(Spring集成Struts)

    本讲解将深入探讨如何将Spring集成到Struts中,以实现更好的控制反转(IoC)和面向切面编程(AOP)。 Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,主要用于处理HTTP请求和展示视图。它...

    Struts Hibernate Spring集成开发宝典 源码

    《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...

    struts hibernate spring集成开发宝典光盘源码(一).rar

    struts hibernate spring集成开发宝典光盘源码(一).rar

    struts hibernate spring集成开发宝典光盘源码(二).rar

    这个压缩包“struts hibernate spring集成开发宝典光盘源码(二).rar”显然是一个用于学习这三大框架集成的实践项目,包含了一些示例代码和接口定义。 1. Struts:Struts 是一款开源的MVC(Model-View-Controller...

    struts+spring集成

    Struts+Spring集成的主要目的是利用两者的优点,使开发更高效、维护更方便。在集成过程中,通常会用Spring来管理Struts中的Action类,实现Action的依赖注入,从而提高代码的可测试性和解耦性。下面将详细讲解这个...

    Struts+spring简单实例

    3. **Struts与Spring集成**:将Struts与Spring集成,可以利用Spring的强大功能来管理Struts中的Action和Service。通过Spring的ApplicationContext,Action和Service可以被声明式地注入,从而实现依赖管理。同时,...

    Struts Hibernate Spring集成开发宝典.part1

    请下载Struts Hibernate Spring集成开发宝典.part1.rar和Struts Hibernate Spring集成开发宝典.part2.rar 《Struts Hibernate Spring集成开发宝典》中文pdf版 计算机电子书下载,《Struts Hibernate Spring集成开发...

    Struts,Hibernate,Spring集成开发宝典.pdf

    《Struts Hibernate Spring集成开发宝典》选取的实例繁简适中,与实际开发工作紧密结合,内容讲解由浅入深、循序渐进,可以满足不同层次读者的需求。 作者简介 陈天河,具有多年的软件开发经验,从事基于Java的Web...

    Struts Hibernate Spring 集成开发宝典springcore

    - **Struts-Spring集成**:通过Spring的Action代理,可以将Struts的Action实例化和管理交给Spring,实现Action的依赖注入。同时,Spring可以作为Struts的ModelDriven模式的实现,简化模型与视图的交互。 - **...

    Struts Hibernate Spring 集成开发宝典 interfaces

    Spring MVC作为其Web开发的一部分,可以与Struts很好地集成,提供更强大的控制层。同时,Spring的Hibernate支持使得数据访问层的管理更加方便。 Struts、Hibernate和Spring的集成主要体现在以下几个方面: 1. 依赖...

    Struts Hibernate Spring 集成开发宝典 validator

    《Struts Hibernate Spring 集成开发宝典》是一本深度探讨企业级Java应用开发的著作,重点关注了三个核心框架的整合使用:Struts、Hibernate和Spring。这三大框架是Java Web开发中的重要组成部分,各自在不同的层面...

    struts2 spring hibernate集成

    **Struts2与Spring的集成** 主要是通过Spring插件实现,这使得Action类可以作为Spring的bean管理,实现依赖注入。这样,Action类可以直接注入服务层(Service)和DAO(数据访问对象)层的bean,简化了代码结构,增强...

    Struts Hibernate Spring 集成开发宝典 springapp

    《Struts Hibernate Spring 集成开发宝典》是一本深度解析Java企业级应用开发的著作,主要聚焦于三大框架——Struts、Hibernate和Spring的整合应用。这三者是Java Web开发中的核心技术,它们各自解决不同的问题,而...

    Struts Hibernate Spring集成开发宝典2

    Struts Hibernate Spring集成开发宝典

    struts spring集成【下】

    通过以上步骤,我们可以成功地将Struts2和Spring集成在一起,利用Spring的强大功能管理Action类、事务以及其他的业务逻辑,同时保持Struts2的MVC架构清晰易用。这种集成方式提高了代码的可测试性,降低了耦合度,...

    Struts Hibernate Spring 集成开发宝典4

    Struts Hibernate Spring 集成开发宝典4

    Struts Hibernate Spring 集成开发宝典3

    Struts Hibernate Spring 集成开发宝典3

    Struts Hibernate Spring 集成开发宝典 actionform

    将Struts、Hibernate、Spring集成,通常采用Spring作为核心容器,管理所有Bean,包括Struts的Action和Hibernate的SessionFactory。ActionForm可以被Spring托管,利用Spring的依赖注入,将SessionFactory注入到...

Global site tag (gtag.js) - Google Analytics