`

spring与struts2整合实现

阅读更多

在Struts2中整合Spring的IoC支持是一件十分简单的事情。让我们一步一步来实现:
1)复制struts2-spring-plugin-x-x-x.jar和相应的spring.jar到/WEB-INF/lib目录下。
2)在struts.properties中设置struts.objectFactory属性值

struts.properties
struts.objectFactory = spring
或者是在XML文件中进行常量配置

struts.xml
<struts>
       <constant name="struts.objectFactory" value="spring" />
</struts>
3)配置Spring监听器

web.xml
<listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

通过Spring配置来注册对象

applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
       "-//SPRING//DTD BEAN//EN"
       "http://www.springframework.org/dtd/spring-beans.dtd ">
<beans default-autowire="byName">
       <bean id="personManager" class="com.acme.PersonManager"/>
</beans>
当然你也可以拥有更多的Spring配置文件。在web.xml中进行下列设置,从而使Spring的ApplicationContext通过匹配所给定模式的文件来初始化对象

<!-- 用来定位Spring XML文件的上下文配置 -->
<context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>

4)修改你的Struts配置文件

struts.xml
<!DOCTYPE struts PUBLIC
       "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
       "http://struts.apache.org/dtds/struts-2.0.dtd ">
<struts>
       <include file="struts-default.xml"/>
       <package name="default" extends="struts-default">
           <action name="foo" class="com.acme.Foo">
               <result>foo.ftl</result>
           </action>
       </package>
       <package name="secure" namespace="/secure" extends="default">
           <action name="bar" class="bar">
               <result>bar.ftl</result>
           </action>
       </package>
</struts>
默认情况下,Spring从下面的文件中寻找为bar所做的配置

applicationConext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
       "-//SPRING//DTD BEAN//EN"
       "http://www.springframework.org/dtd/spring-beans.dtd ">
<beans default-autowire="byName">
       <bean id="bar" class="com.my.BarClass" singleton="false"/>
       ...
</beans>
5)好了,现在你的Struts2和Spring就能正常的一起工作了。有几个配置技术点需要详细说明下:装配模式。你可以通过设置修改struts.properties中下列属性的值来改变装配模式。

struts.objectFactory.spring.autoWire = type
该参数可供选择的设置值有
name 按照你的action的属性的名字和Spring里的bean的名字匹配,如果匹配就自动装配。这是缺省的
type 按照你的action的属性的类型,在Spring注册的bean中查找,如果相同就自动装配。这需要你在Spring中仅注册了一个此类型的bean
auto Spring会试图自动监测来找到最好的方法自动装配你的action
constructor Spring会自动装配bean的构造函数的参数
是否使用类缓存。你可以通过设置修改struts.properties中下列属性的值来改变是否使用Spring自身的类缓存机制。可以设定的值为true或false,默认为true。

struts.objectFactory.spring.useClassCache = false

分享到:
评论

相关推荐

    spring与struts2整合

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

    Spring与Struts 2整合.zip

    在"Spring与Struts 2整合.zip"这个压缩包中,可能包含了一系列的配置文件、源代码和示例项目,帮助开发者了解和学习如何将这两个框架有效地结合在一起。通过学习和实践这些材料,开发者可以掌握在实际项目中整合...

    Spring与Struts2整合

    下面将详细介绍Spring与Struts2整合的相关知识点。 **一、整合背景** Spring和Struts2的整合主要基于两者的互补性。Spring提供了一种全面的业务层和持久层管理方案,而Struts2则专注于视图和控制层。整合这两者可以...

    spring+struts2整合源码

    首先,Spring和Struts2整合的主要目的是实现业务逻辑层和表现层的解耦,提高代码的可测试性和可维护性。Spring主要负责管理Bean,提供事务控制,而Struts2则负责处理HTTP请求,展示视图。 1. **配置Spring**: 在...

    struts2整合spring实现拦截器

    在本文中,我们将深入探讨如何实现Struts2与Spring的集成,以及利用拦截器来增强应用的功能。 首先,Struts2 是一个基于MVC设计模式的开源Web框架,它提供了强大的控制器层,使得开发者可以更方便地处理HTTP请求和...

    spring+struts2+ibatis整合的jar包

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

    spring和struts的整合-aop的使用

    在这个"spring和struts的整合-aop的使用"主题中,我们将深入探讨如何将Spring与Struts2集成,并利用Spring的AOP实现日志记录。 首先,整合Spring和Struts2的关键在于配置。通常,我们需要在Struts2的配置文件...

    Struts2整合Spring、JPA

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

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

    ibatis+Spring+struts2整合实例

    本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...

    DWR与SPRING,DWR与STRUTS2的整合

    提供的文档“dwr与spring.doc”和“dwr与struts2.doc”可能详细阐述了整合过程和最佳实践,而“一个小例子.txt”可能包含了一个实际整合示例,帮助读者更好地理解整合步骤和实现方式。学习并掌握这些知识对于提升...

    ibatis+spring+struts2 整合开发例子

    Struts2可以很好地与Spring框架集成,实现Action类的依赖注入,同时,通过Struts2的拦截器,可以实现如权限验证、日志记录等功能。 在整合ibatis、spring和struts2的过程中,首先要配置Spring的ApplicationContext...

    Spring与Hibernate整合,Spring与Struts2整合源代码

    在Spring与Struts2整合时,主要目的是将Spring的依赖注入和事务管理等能力引入到Struts2的控制器层,以提高代码的可测试性和模块化。以下是一个简单的整合步骤: 1. 创建Web项目,并添加Struts2的必要库文件,包括...

    spring_struts_hibernate整合开发书籍

    书中会详细讲述如何配置这些框架,使它们协同工作,包括Spring与Hibernate的事务管理、数据源配置、以及Struts2与Spring的整合等。 除此之外,书中还可能涵盖了单元测试、异常处理、安全性配置等方面的内容,这些都...

    Spring/Struts2整合项目

    下面将详细讲解Spring与Struts2整合的关键知识点。 首先,Spring是一个轻量级的全面应用程序框架,它提供依赖注入(DI)和面向切面编程(AOP)等核心功能,广泛用于控制层和业务层的开发。而Struts2则是一个基于MVC...

    dwr和spring和struts2整合

    Spring还提供了对其他框架的集成支持,如数据库访问、事务管理以及与Struts2和DWR的整合。 Struts2是一个基于MVC设计模式的Java Web框架,用于构建可维护、可扩展的应用程序。它提供了强大的动作类、拦截器、结果...

    Spring+Struts2_整合原理

    ### Spring与Struts2整合原理详解 #### 一、整合背景及意义 随着企业级应用需求的日益复杂,单一框架往往难以满足项目的所有需求。在Java Web开发领域,Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)...

    整合struts2和spring

    将Struts2和Spring整合可以充分利用各自的优势,实现更加灵活、高效的应用开发。 整合Struts2和Spring主要涉及以下几个关键步骤: 1. **添加依赖**:首先,需要在项目的构建配置文件(如Maven的pom.xml或Gradle的...

    Spring与struts整合开发实例

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

Global site tag (gtag.js) - Google Analytics