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与Struts2集成,Spring可以作为Struts2的Action的依赖注入容器,通过Spring的ApplicationContext获取服务层对象,实现业务逻辑处理。 - Struts2与Hibernate集成,通常在Action中通过SessionFactory获取...
标题中的"Spring集成struts以及hibernate jar包"指的是在Java Web开发中,将Spring框架与Struts2和Hibernate框架进行整合的过程。这通常是为了构建一个完整的MVC(Model-View-Controller)架构,其中Spring负责依赖...
在IT行业中,Spring和Struts都是非常著名的Java Web框架...这只是一个基础的集成方法,实际上还有其他的集成方式,如使用Spring MVC替代Struts,或者结合其他框架如Hibernate进行数据持久化操作,进一步优化应用架构。
### Spring集成Struts与Hibernate详解 #### Spring集成Struts **背景介绍** 随着Java技术的发展,Struts作为最早的MVC框架之一,在Java EE领域中占据了重要地位。虽然随着时间的推移,新的框架和技术不断涌现,但...
Spring集成Struts与Hibernate入门详解 Spring框架是Java平台上一个开源的轻量级框架,它提供了许多功能强大且灵活的模块,以帮助开发者快速构建企业级应用程序。Struts是Apache软件基金会的一个开源项目,提供了一...
本讲解将深入探讨如何将Spring集成到Struts中,以实现更好的控制反转(IoC)和面向切面编程(AOP)。 Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,主要用于处理HTTP请求和展示视图。它...
在Spring-Struts的集成中,一种常见方法是通过继承Spring提供的`ActionSupport`基类。`ActionSupport`是`Action`的抽象实现,它包含了对Spring应用上下文的访问。当我们在自定义的Action类中,例如`CourceAction`,...
下面我们将详细探讨Spring与Struts1.2的整合集成及其核心概念。 1. **Spring框架介绍** Spring是一个全面的后端开发框架,包括了数据访问、事务管理、远程调用、AOP等模块。它通过DI和AOP简化了对象的创建和管理,...
Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,以及对其他框架的良好集成,而Struts则是一个专注于MVC模式的轻量级框架。在整合两者时,主要目标是让Spring管理Struts的Action实例,这样可以利用Spring...
标题“Spring之Spring2.5集成Struts2.2”涉及到的是在Web开发中整合两个非常流行的开源框架——Spring和Struts2的过程。这个过程旨在利用Spring的强大IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented ...
这种方式更适用于那些需要深度集成Spring特性的场景,比如AOP或更复杂的依赖注入需求。 ### 结论 Spring与Struts的整合提供了灵活且强大的Web应用开发解决方案。无论是通过ContextLoaderPlugin还是继承...
通过Action类和拦截器,可以实现与Spring的无缝集成,同时也可以利用Spring的缓存功能,将频繁访问的数据存储在Redis中。 3. **Hibernate框架**:Hibernate是Java领域的一个对象关系映射(ORM)框架,它简化了数据库...
使用Spring集成struts2、ibatis、poi实现的增删改查功能,包括采用jquery实现的无刷新查询机分页、dwr实现的两级联动、以及采用poi动态将数据库数据导出成excel,本demo采用mysql数据库,附有建表sql,项目导入...
以下是对“Spring集成Struts2环境简单配置”的详细说明: 首先,我们需要在项目中引入Spring和Struts2的依赖库。这通常通过Maven或Gradle等构建工具完成,添加相应的依赖项到项目的pom.xml或build.gradle文件中。...
将两者集成,可以利用Spring的强大 IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)能力,以及Struts的优秀表现层管理,提升项目的可维护性和扩展性。 首先,集成Spring...
同时,为了集成 Spring,需要配置 Struts2-Spring 插件,这样 Struts2 就能利用 Spring 管理的 Bean。 4. **Action 类**:Action 类通常作为 Struts2 处理请求的入口,它可以从 Spring 容器中注入所需的依赖。通过...
这篇博客"Spring集成Struts、JSF、WebWork2"探讨了如何将这些框架与Spring进行整合,以构建更复杂、灵活的Web应用程序。 首先,让我们详细了解一下这三个框架: 1. **Struts**: Apache Struts 是最早的Java MVC...
### Spring集成Struts #### 一、Spring与Struts整合背景及意义 Spring框架作为一款轻量级的Java EE开发框架,在企业级应用开发中占据了举足轻重的地位。它以其强大的依赖注入(DI)和面向切面编程(AOP)能力著称...
为了方便大家开发,特意制作了intellij环境下maven项目spring+struts集成空模板。直接导入intellij就可以用,模板下有个简单的小例子。对于学习spring+struts集成、以及希望快速开发的人来说都是不错的资源
集成Struts2、Spring和Hibernate时,需要注意配置文件的正确设置,包括Action配置、Spring Bean的定义、Hibernate的数据库连接和实体映射。同时,理解这三个框架的工作原理和相互作用,对于解决问题和优化代码至关...