Struts2与Spring的整合
根据当前的统计状况,软件开发行业对Struts1的使用率逐渐在降低,而对Struts2的使用率逐渐上升,这取决于Struts2比Struts1有着很多更方便,合理的改进。
简单说几点关键的改进吧。首先,Struts2中的Action不再依赖于Http协议,进一步说就是不再依赖于表示层中的request,response等http协议中的对象了,这一改进让我们的Action可以是一个普通的JavaBean或叫POJO类;其次,它在配置文件的配置上简化了很多,配置很方便;再次就是,它是一个基于组件的框架,可整合JSF,Tapestry,DWR,FreeMark,JFreeChart,Spring等等,体现了它强大的可扩展性。
那么,我现在谈下Spring与Struts2的整合。
其整合中最重要的原理就是,我们的Structs2在默认情况下是由自己创建Action对象,进行请求处理和业务调度的。可是SSH整合的项目中,我们都知道,后台的业务处理和DAO都是由Spring进行横向管理的。这意味着,我们的请求要想得到后台业务对象的相关服务,就必须和Spring扯上关系,那就是把Struts2里面创建Action的权利交给Spring。
第一,我们首先要把Struts2与Spring整合的支持架包导入工程,加入struts2-spring-plugin-2.0.9.jar到lib目录.
第二,我们通过配置web.xml来通知工程在启动时候装载Spring上下文,具体配置如下:
在web.xml中添加如下配置。
<!-- Struts2配置 -->
<!-配置Structs2的中心控制器-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--设置上下文本地配置文件的路径-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
<!-- 装载Spring上下文 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
第三,在struts.properties中加入: struts.objectFactory = spring或在struts.xml中加入: <constant name="struts.objectFactory" value="spring" />告知Struts2的Action由Spring创建和管理。
第四,在Spring配置文件applicationContext.xml中加入相应Action的<bean />,
如:Struts2中有个Action为LoginAction,此Action的name属性为name="login",那么在Spring的配置文件的配置就是:
<bean id="login" class="org.struts2.action.LoginAction"></bean>
我们就可以在上面的bean中由Spring注入相应的业务对象了。
Ok,这样,Struts2就和Spring整合了。
分享到:
相关推荐
下面我们将深入探讨Struts2与Spring整合的相关知识点。 1. **Struts2框架**: - Struts2是一个基于MVC设计模式的Web应用框架,用于简化Java Web应用的开发。 - 它提供了强大的Action类,负责处理请求并调用业务...
**Struts2与Spring整合的优势** 1. **解耦合**:通过Spring的依赖注入,Action类可以从容器获取依赖的服务,降低了Action和具体实现的耦合。 2. **统一管理**:Spring可以管理Struts2的Action实例,实现Action的单例...
总之,Struts2与Spring的整合使得开发者能够更好地组织和管理应用程序的各个部分,降低了耦合度,提高了可维护性和可测试性。同时,这种整合也为企业级应用开发提供了更强大的功能和灵活性。通过学习和掌握这些知识...
Struts2与Spring整合使用json报错解决办法[归纳].pdf
这个插件是在strtus2和spring集成必备的一个插件
3. **Struts2与Spring整合的意义**:整合这两个框架的主要目的是利用Struts2的优秀控制层和视图层处理,结合Spring的强大依赖注入和事务管理功能,提高代码的可测试性和解耦性。同时,通过Spring管理Struts2的Action...
本文将深入探讨Struts2与Spring2的整合过程及其背后的原理。 首先,Struts2是一个基于MVC设计模式的Web应用框架,它主要负责处理HTTP请求,提供强大的动作(Action)和结果(Result)管理,以及丰富的插件系统。...
4. **FilterDispatcher**:在Struts2与Spring整合时,通常会使用`StrutsSpringObjectFactory`替换默认的`DefaultActionProxyFactory`。为此,我们需要在web.xml中配置`StrutsPrepareAndExecuteFilter`而非传统的`...
在 MyEclipse 中,选择 Struts2 的支持并添加 Struts2-spring-plugin-2.0.11.jar,这是 Struts2 与 Spring 整合的关键库。 3. **添加 Spring 支持**:接着添加 Spring 支持,确保勾选 Spring 2.0 Web Libraries,...
**Struts2与Spring整合** 1. **依赖注入(DI)**:整合Struts2和Spring后,可以通过Spring的DI机制来管理Struts2中的Action实例,从而实现Action对象的生命周期管理和依赖关系的自动装配。 2. **Action配置**:在...
为了演示Struts2与Spring整合的效果,这里定义了一个简单的业务接口`ChatService`及其实现类`ChatServiceImpl`: ```java // ChatService.java public interface ChatService { Set<String> getUserNames(); } //...
提供的压缩包文件"struts2+spring整合实例.docx"可能包含了详细的步骤和示例代码,用于指导如何将这两个框架整合到一个项目中。通过学习和实践这个实例,开发者可以更好地理解和掌握Struts2与Spring的整合技巧。
3. **Struts2-Spring插件**:`struts2-spring-plugin-x.xx.jar`,这是实现Struts2与Spring整合的关键组件。 此外,还需要其他第三方库的支持,例如`commons-logging.jar`、`ognl-x.xx.jar`等。 #### 三、配置...
三、Struts2与Spring整合的必要性 整合Struts2和Spring的主要原因是利用两者的互补性,提升应用的可维护性和可扩展性。Spring可以作为业务层的容器,管理Action和Service的生命周期,实现依赖注入,而Struts2则专注...
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
5. **整合Struts2与Spring**:使用Spring-Struts2的插件,比如struts2-spring-plugin-*.jar,这样Action可以被Spring管理,实现依赖注入。在struts.xml中,通过`<spring:bean>`标签声明Action。 6. **处理冲突**:...
**Struts2和Spring整合** 整合Struts2和Spring的主要目标是利用两者的优点,创建一个更强大的MVC应用。整合步骤通常包括: 1. **配置Spring**:创建Spring的ApplicationContext配置文件,定义Bean及其依赖。 2. **...
在Struts2与Spring2的整合过程中,主要目标是将Struts2的控制层与Spring2的服务层无缝对接,以便更好地管理对象和执行业务逻辑。以下是一些关键知识点: 1. **依赖注入(Dependency Injection,DI)**:Spring2的...
- **struts2-spring-plugin.jar**:用于Struts2与Spring的整合,提供Action类的依赖注入功能。 - **struts2-tiles-plugin.jar**:集成Tiles布局框架,方便页面的组织和复用。 - **struts2-json-plugin.jar**:...