`
kaka555
  • 浏览: 27528 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论
  • chian_xxp: 个人浅见:作者的这两段话是自相矛盾的。 1 当程序需要为某个客 ...
    HTTP Session

spring和struts集成

阅读更多
struts要和spring集成,struts就必须能访问spring的上下文,struts作为web的框架,故要保证web应用程序启动前装载了spring的web应用上下文。如果装载了spring的web上下文,在程序中就可以通过spring提供的WebApplicationContextUtils工具类来访问该上下文:
ApplicationContext ctx =
  WebApplicationContextUtils.getWebApplicationContext(servletContext);

装载spring上下文的方法有以下几种:
1、通过web.xml声明监听器,在web服务启动时装载: (其listener用到context-param)
...................

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
.......................

2、通过web.xml声明spring提供的ContextLoaderServlet(早期不支持servlet2.4时用):

...................
<servlet>
  <servlet-name>contextLoader</servlet-name>
  <servlet-class>
   org.springframework.web.context.ContextLoaderServlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
...................

3、通过struts-config.xml以插件的形式声明spring提供的ContextLoaderPlugin,就可以向sturts的ActionServlet装载spring的应用上下文了:

  ......................

<plug-in className="org.springframework.web.struts.ContextLoaderPlugin">
  <set-property property="contextConfigLocation"
   value="/WEB-INF/applicationContext.xml"/>
</plug-in>

.........................




集成struts的方法:


1 、使用 org.springframework.web.struts.ActionSupport 类:
这是最简单的集成struts方法。通过struts的action简单继承ActionSupport类便可以直接使用spring上下文。
..............
XXXX xxx=(XXXX)this.getWebApplicationContext().getBean("xxx");
..............

2、使用 org.springframework.web.struts.DelegatingRequestProcessor 类来覆盖struts的高层处理类RequestProcessor,这就要在struts-config.xml中用controller声明:
.....................
<action-mappings>
  ...........
  <action path="/login"
   type="struts.action.LoginAction"
   name="loginForm">
  <forward name="success" path="/WEB-INF/main.jsp">
  </action>
  ...........
</action-mappings>
.....................
<controller processorClass="org.springframework.web.struts.DelegatinRequestProcessor"/>
.....................

另外,还要在spring配置文件中,声明对应某个action的bean,而且bean的name值必须和action的path一致,因为spring容器是根据此bean的name来找到相应的action,然后再进行相应的注入操作的:
................
<bean id="loginService" class="business.LoginServiceImpl">
         <property name="name" value="aaaaa"/>
     </bean>

     <bean name="/login"
      class="struts.action.LoginAction">
         <property name="loginService">
             <ref bean="loginService"/>
         </property>
     </bean>
................



3、使用 org.springframework.web.struts.AutowiringRequestProcessor 类,它是spring2.0 后加入的。类似DelegatingRequestProcessor,但它的自动完成能力更强。首先也要在struts-config.xml中用<controller>声明:
........................
<controller processorClass="org.springframework.web.struts.AutowiringRequestProcessor"/>
........................
其他的就照常就得了,它比DelegatingRequestProcessor少了在spring配置中声明action的bean,它会根据action类名来自动完成注入操作。即Struts的Action中如有某业务类A对象的属性,又在spring配置文件中声明了业务类A的Bean,则AutowiringRequestProcessor就会自动将业务类A的Bean注入到Action中。

看上去你好像啥都没做,而事实上,注入工作已经由AutowiringRequestProcessor自动完成。 这种autowire的注入支持两种不同的方式,分别是byName和byType,默认是byType。
分享到:
评论

相关推荐

    Spring与Struts集成方式一

    - 利用Spring的测试框架,如`SpringJUnit4ClassRunner`,可以方便地对Spring和Struts集成的应用进行单元测试和集成测试。 在实际项目中,通常还会涉及到安全框架(如Spring Security)和拦截器的配置,以增强应用...

    spring_struts集成例子

    下面我们将详细探讨Spring与Struts集成的相关知识点。 首先,Spring 框架以其强大的DI(Dependency Injection)和AOP(Aspect Oriented Programming)特性而闻名,它可以管理对象的生命周期和依赖关系,使得代码...

    Spring_Struts集成

    **Spring和Struts集成详解** 在Java Web开发中,Spring框架和Struts框架都是不可或缺的组件,它们分别在依赖注入(DI)和模型-视图-控制器(MVC)架构方面展现出强大的功能。Spring提供了全面的后端服务管理,包括...

    intellij环境下maven项目spring+struts集成空模板

    为了方便大家开发,特意制作了intellij环境下maven项目spring+struts集成空模板。直接导入intellij就可以用,模板下有个简单的小例子。对于学习spring+struts集成、以及希望快速开发的人来说都是不错的资源

    spring_struts的简单应用

    SSH(Struts + Spring + Hibernate)是经典的 Java EE 开发框架组合,这里我们主要探讨 Spring 和 Struts 的集成应用。 1. **Spring 框架**: - **核心概念**:Spring 提供了一个轻量级的容器,它管理对象的生命...

    spring+struts论坛

    以下是一些关于Spring和Struts集成的关键知识点: 1. **依赖注入(DI)与控制反转(IOC)**:Spring通过DI实现对象之间的松耦合,Struts中的Action和其他组件可以通过Spring的Bean工厂获取依赖的对象。 2. **Spring ...

    struts+spring+jdbc集成步骤

    #### 附录:Spring和Struts集成细节 Spring与Struts的集成不仅限于Plug-in方式,还可以通过自定义Action类实现。无论哪种方式,核心目标都是让Spring的IOC容器在Struts环境中运行,管理Struts的Action和其他组件,...

    spring+struts9篇技术文档

    - **Spring MVC 与 Struts2**:尽管Spring本身有MVC框架,但也可以与Struts2集成,利用Struts2的控制器和Action特性,结合Spring的强大功能。 - **事务管理**:Spring 提供的事务管理可以覆盖Struts的事务控制,...

    spring与struts集成方案二

    下面,我们将深入探讨Spring与Struts集成方案二的关键知识点。 首先,集成的主要目的是将Spring的业务逻辑管理与Struts的视图和控制层结合起来。在方案二中,通常会使用Spring作为应用程序的核心框架,负责管理Bean...

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Spring与Struts2集成,Spring可以作为Struts2的Action的依赖注入容器,通过Spring的ApplicationContext获取服务层对象,实现业务逻辑处理。 - Struts2与Hibernate集成,通常在Action中通过SessionFactory获取...

    Spring和Struts整合例子

    在Java Web开发中,Spring和Struts是两个非常流行的开源框架。Spring是一个全面的企业级应用框架,提供了依赖注入(DI)、面向切面编程(AOP)以及数据访问、事务管理等核心功能。Struts则是一个基于MVC设计模式的...

    spring+struts集成学习笔记和项目源码

    在提供的"spring+struts集成学习笔记和项目源码"中,你将有机会深入理解这些概念,通过实际操作来学习如何将Spring的优秀特性与Struts的高效处理机制结合起来,构建出高效稳定的Web应用。源码分析和实践操作是加深...

    Spring与Struts集成方式二

    以上就是Spring与Struts集成的第二种方式,它允许我们在Struts2的Action中直接使用由Spring管理的Bean,实现了业务逻辑层和控制层的解耦。这种方式相比第一种,即在Struts2的配置文件中直接配置Bean,更符合Spring的...

    Spring集成struts以及hibernate jar包

    标题中的"Spring集成struts以及hibernate jar包"指的是在Java Web开发中,将Spring框架与Struts2和Hibernate框架进行整合的过程。这通常是为了构建一个完整的MVC(Model-View-Controller)架构,其中Spring负责依赖...

    Spring+Struts2+hibernate+Redis整合

    通过Action类和拦截器,可以实现与Spring的无缝集成,同时也可以利用Spring的缓存功能,将频繁访问的数据存储在Redis中。 3. **Hibernate框架**:Hibernate是Java领域的一个对象关系映射(ORM)框架,它简化了数据库...

    Jpa+Spring+Struts集成步骤详解

    下面,我们将详细介绍如何进行Jpa、Spring和Struts的集成。 1. 集成JPA环境步骤: JPA是Java标准的ORM(对象关系映射)规范,它提供了一种在Java应用程序中操作数据库的方式。首先,我们需要在项目中引入JPA的依赖...

    spring与struts2集成所需要的jar包

    集成Spring和Struts2的好处在于,Spring可以帮助管理Struts2的Action和业务逻辑,实现松耦合和更好的测试性。同时,Struts2的MVC模型和丰富的插件系统可以提供优雅的用户界面和交互控制。这样的结合,不仅提升了开发...

    hibernate_spring_struts框架资料

    标题中的“hibernate_spring_struts框架资料”指的是一个关于三大开源Java Web框架——Hibernate、Spring和Struts集成使用的教程或参考资料集合。这三大框架是企业级Java应用开发中的常用工具,它们各自负责不同的...

    Spring与Struts集成方式三

    7. **整合Hibernate**:如果项目中还涉及到数据库操作,SpringStrutsHibernate的文件名可能暗示了Spring与Hibernate的集成。在Spring配置文件中,我们可以定义SessionFactory bean,以及数据访问对象(DAO)的bean。...

Global site tag (gtag.js) - Google Analytics