`

Spring整合struts(二)

    博客分类:
  • java
阅读更多

转自:http://xm-king.javaeye.com/blog/519792

在Spring整合struts(一)中,我详细介绍了如何在Web应用中启动Spring,创建ApplicationContext实例,在本篇文章中,我将继续就Spring整合struts做进一步的探讨,简单的说就是Spring是如何管理Action这个bean的。

     如果系统采用了Spring,Spring负责业务逻辑组件的创建和生成,并将管理业务逻辑组件的生命周期。可以这样理解:Spring是个性能非常优秀的工厂,可以成产出所有的实例,从业务逻辑组件到持久层组件,甚至控制器。在这里,我推荐使用利用Spring的IOC特性整合struts,采用这种方式能充分利用Spring依赖注入的优势,无须显式地获取Spring的ApplicationContext实例。由SpringIOC容器管理Action也有以下两种方式:


1:使用Spring 的 DelegatingRequestProcessor 类。
2:全权委托DelegatingActionProxy。


1:使用Spring 的 DelegatingRequestProcessor 类
     查看Struts的源码,可以看到由ActionServlet调用RequestProcessor完成实际的转发,如想在ActionServlet处将请求转发给ApplicationContext的bean,可以通过扩展RequestProcessor完成,使用扩展的RequestProcessor替代struts的RequestProcessor。

       Spring能完成这种扩展,因为Spring提供的DelegatingRequestProcessor继承自 org.apache.struts.action.RequestProcessor 并覆盖了里面的方法。为了让Struts使用DelegatingRequestProcessor,通过 <controller >来替代org.apache.struts.action.RequestProcessor 的请求处理。还需要再Struts-config.xml文件中增加如下代码:


<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>

       完成这个设置后,Struts会将拦截道德用户请求转发到Spring Context下的bean,根据bean的name属性来匹配。而Struts中的action配置则无须配置type属性,即使配置了type属性也没有任何用处

2:全权委托DelegatingAcionProxy:

     DelegatingRequestProcessor替换了原来的RequestProcessor,并在请求转发给action之前,转发给Spring管理的bean;而DelegatingAcionProxy则被配置成Struts的action,即所有的请求先被ActionServlet拦截,然后将请求转发到对应的action,而action的实现类全都是DelegatingRequestProcessor;最后由DelegatingAcionProxy将请求转发给Spring容器的bean。

     DelegatingAcionProxy接受ActionServlet转发过来的请求,然后转发给ApplicationContext管理的bean,这是典型的链式处理、在Struts-config.xml文件中配置了大量的DelegatingAcionProxy实例,Spring容器中也配置了同名的Action、即Struts的业务控制器分成了两个部分:第一部分是Spring的DelegatingAcionProxy,这个部分没有实际意义,仅仅完成转发;第二部分是用户的Action实现类,负责实际的处理工作。


总结一下:
整合工作中的步骤:
1,修改struts-config.xml
2, 配置applicationContext.xml
3, 为Action添加get/set方法 来获得依赖注入的功能。
分享到:
评论

相关推荐

    Spring整合Struts

    ### Spring与Struts的整合:实现灵活的企业级应用开发 在企业级应用开发领域,Spring框架和Struts框架都是极具影响力的技术。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,提供了良好的环境管理和...

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

    第二种整合方式是使用Spring提供的`DelegatingRequestProcessor`类。这种方式不需要让Action继承特定的类,而是通过配置`DelegatingRequestProcessor`来实现Spring与Struts的整合。 **配置**: 在`struts-config....

    Spring整合集成Struts1.2最简单例子

    将Spring与Struts1.2整合,可以利用Spring的强大功能来管理Struts的Action和业务逻辑,提高代码的可测试性和可维护性。 4. **整合步骤** - **配置Spring**:首先创建Spring配置文件(如`applicationContext.xml`...

    使用Spring整合Struts编写多页面用户注册模块

    总的来说,整合Spring和Struts编写多页面用户注册模块涉及到的主要知识点有:Spring的DI和AOP,Struts的MVC架构,Action和Result的配置,以及JSP或模板引擎的使用。通过这样的整合,我们可以构建出一个灵活、可扩展...

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

    1. **Spring整合** - 在MyEclipse中添加Spring支持,选择相应的Spring版本和开发包,如Spring 1.2系列。 - 创建Spring配置文件(如`applicationContext.xml`),配置Bean定义,包括Service层、DAO层以及Action类等...

    spring整合struts的jar文件

    spring框架整合struts框架时必需的类库文件

    整合struts2和spring

    整合Struts2和Spring主要涉及以下几个关键步骤: 1. **添加依赖**:首先,需要在项目的构建配置文件(如Maven的pom.xml或Gradle的build.gradle)中添加Struts2和Spring的相关依赖库。这通常包括struts2-core、...

    spring与struts2整合

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

    Spring与struts整合开发实例

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

    Spring整合Struts2

    本文将详细探讨如何整合Spring与Struts2,以及在整合过程中所需的最少jar包。 首先,理解Spring和Struts2的核心概念: 1. **Spring框架**:Spring通过提供IoC(Inversion of Control)容器来管理对象的生命周期和...

    spring整合struts.rar

    整合 Spring 和 Struts 的主要目标是利用 Spring 的 IoC(Inversion of Control,控制反转)和 AOP 来管理和控制 Struts2 的动作类(Action),同时利用 Struts2 的 MVC 模式处理 Web 请求和展示视图。以下是整合...

    整合Spring与Struts的几种方法

    整合Spring和Struts是Web开发中常见的需求,这两者都是Java Web开发的重要框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,以及对其他框架的良好集成,而Struts则是一个专注于MVC模式的轻量级框架...

    Spring与Struts 2整合.zip

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

    struts1和spring整合

    Struts1 和 Spring 整合是 Java Web 开发中常见的一种技术组合,它们分别作为 MVC 框架和依赖注入框架,共同提升了应用的可维护性和可扩展性。Struts1 提供了强大的控制器层,而 Spring 提供了业务逻辑处理和依赖...

    Spring与Struts2整合

    3. **整合Struts2-Spring插件** 引入Struts2的Spring插件,该插件使得Spring管理的Action类可以在Struts2中直接使用。在struts.xml配置文件中启用该插件。 4. **Action类的配置** 创建Spring管理的Action类,通常...

    spring 整合 struts 文档

    ### Spring 整合 Struts 的方法详解 #### 一、Spring 整合 Struts 框架概述 在Java Web开发领域,Spring 和 Struts 是非常流行的技术框架。Spring 提供了一个强大的轻量级框架来解决企业应用开发中的各种问题,而...

    spring+struts2+ibatis整合的jar包

    总的来说,Spring、Struts2和iBatis的整合为Java Web开发提供了一个强大、灵活的解决方案,让开发者能够更专注于业务逻辑,而不是框架的底层实现。通过合理的配置和使用这个jar包,开发者可以快速构建出稳定、高性能...

    spring_struts_hibernate整合开发书籍

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

    Spring整合Struts和hibernate的所有jar文件

    此资源中包涵了spring整合struts和hibernate的所有资源,在做项目时只要在工程中引入该jar包就行,不用在eclipse或Myeclipse中加载strut与hibernate的资源了,挺有用的!

Global site tag (gtag.js) - Google Analytics