转自: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以其强大的依赖注入(DI)和面向切面编程(AOP)能力,提供了良好的环境管理和...
第二种整合方式是使用Spring提供的`DelegatingRequestProcessor`类。这种方式不需要让Action继承特定的类,而是通过配置`DelegatingRequestProcessor`来实现Spring与Struts的整合。 **配置**: 在`struts-config....
将Spring与Struts1.2整合,可以利用Spring的强大功能来管理Struts的Action和业务逻辑,提高代码的可测试性和可维护性。 4. **整合步骤** - **配置Spring**:首先创建Spring配置文件(如`applicationContext.xml`...
总的来说,整合Spring和Struts编写多页面用户注册模块涉及到的主要知识点有:Spring的DI和AOP,Struts的MVC架构,Action和Result的配置,以及JSP或模板引擎的使用。通过这样的整合,我们可以构建出一个灵活、可扩展...
1. **Spring整合** - 在MyEclipse中添加Spring支持,选择相应的Spring版本和开发包,如Spring 1.2系列。 - 创建Spring配置文件(如`applicationContext.xml`),配置Bean定义,包括Service层、DAO层以及Action类等...
spring框架整合struts框架时必需的类库文件
整合Struts2和Spring主要涉及以下几个关键步骤: 1. **添加依赖**:首先,需要在项目的构建配置文件(如Maven的pom.xml或Gradle的build.gradle)中添加Struts2和Spring的相关依赖库。这通常包括struts2-core、...
Spring 和 Struts2 是两个...总之,Spring 和 Struts2 的整合利用了两者的优势,提供了一种强大的方式来构建可扩展、易于维护的 Java Web 应用。通过深入学习和实践,开发者可以掌握这种整合技巧,并在实际项目中应用。
Spring与struts整合主要有三种方式,通过Spring的ActionSupport类,通过Spring的DelegatingRequestProcessor类、通过Spring的DelegatingActionProxy类。
本文将详细探讨如何整合Spring与Struts2,以及在整合过程中所需的最少jar包。 首先,理解Spring和Struts2的核心概念: 1. **Spring框架**:Spring通过提供IoC(Inversion of Control)容器来管理对象的生命周期和...
整合 Spring 和 Struts 的主要目标是利用 Spring 的 IoC(Inversion of Control,控制反转)和 AOP 来管理和控制 Struts2 的动作类(Action),同时利用 Struts2 的 MVC 模式处理 Web 请求和展示视图。以下是整合...
整合Spring和Struts是Web开发中常见的需求,这两者都是Java Web开发的重要框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,以及对其他框架的良好集成,而Struts则是一个专注于MVC模式的轻量级框架...
整合Spring和Struts 2的主要目的是将Spring的依赖注入和管理能力引入到Struts 2的Action中,以及利用Spring的AOP进行事务管理。整合步骤通常包括以下几个部分: 1. **添加依赖**:在项目中引入Spring和Struts 2的库...
Struts1 和 Spring 整合是 Java Web 开发中常见的一种技术组合,它们分别作为 MVC 框架和依赖注入框架,共同提升了应用的可维护性和可扩展性。Struts1 提供了强大的控制器层,而 Spring 提供了业务逻辑处理和依赖...
3. **整合Struts2-Spring插件** 引入Struts2的Spring插件,该插件使得Spring管理的Action类可以在Struts2中直接使用。在struts.xml配置文件中启用该插件。 4. **Action类的配置** 创建Spring管理的Action类,通常...
### Spring 整合 Struts 的方法详解 #### 一、Spring 整合 Struts 框架概述 在Java Web开发领域,Spring 和 Struts 是非常流行的技术框架。Spring 提供了一个强大的轻量级框架来解决企业应用开发中的各种问题,而...
总的来说,Spring、Struts2和iBatis的整合为Java Web开发提供了一个强大、灵活的解决方案,让开发者能够更专注于业务逻辑,而不是框架的底层实现。通过合理的配置和使用这个jar包,开发者可以快速构建出稳定、高性能...
《Spring+Struts+Hibernate整合开发》是一本深入讲解企业级Java应用开发的书籍,它主要聚焦于三大著名开源框架——Spring、Struts和Hibernate的集成与应用。这些框架是Java Web开发中的基石,广泛应用于各种复杂的...
此资源中包涵了spring整合struts和hibernate的所有资源,在做项目时只要在工程中引入该jar包就行,不用在eclipse或Myeclipse中加载strut与hibernate的资源了,挺有用的!