1. 在action中每次都要从spring管理的配置中区获取对象 , 所以考虑把此配置放到web的application中
容器启动就加载,
方法一 .配置如下:
<!-- 配置如下 名字有约定,由spring内部提供 , 也可以自己写一个监听器 -->
在web.xml中配置如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml,/WEB-INF/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3. action中的用法如下:
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()) ;
UserDao userDao = (UserDao)ctx.getBean("userDao") ;
方法二:struct中提供了plugin机制 (用的较多)
配置如下:
在struts-config.xml 配置
<!-- 容器一启动后就加载plug-in 以下配置的就是把xml文件读入web的application中 -->
<!--
action的创建工作交由spring来管理, action过来,去actionMapping中查找 , 找到的是一个spring的
代理类 , 读取配置交由DelegatingActionProxy来读取 , 所以程序员根本无需显示去读取配置,因为已经
交由spring注册进去了,自动管理
-->
<action path="/login" type="org.springframework.web.struts.DelegatingActionProxy" name="userActionForm" >
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
</action-mappings>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext-*.xml" />
</plug-in>
在spring的application-action.xml中配置
<bean name="/login" class="com.cs.action.LoginAction">
<property name="userDao" ref="userDao" />
</bean>
在action中要取dao 只需将dao注入即可,再也不用显示的用ctx.getBean(“useDao”)了
如:
public class LoginAction extends Action {
private UserDao userDao ;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserActionForm userActionForm = (UserActionForm)form ;
User user = userDao.login(userActionForm.getUsername(), userActionForm.getPassword()) ;
if (user != null) {
return mapping.findForward("success") ;
}else {
return mapping.findForward("fail") ;
}
}
方法三:和方法2差不多
在web.xml中配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml,/WEB-INF/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
在stucts.config.xml中配置
<action path="/login" type="org.springframework.web.struts.DelegatingActionProxy" name="userActionForm" >
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
在spring的application-action.xml中配置
<!-- 在此name对应struts配置中的path -->
<bean name="/login" class="com.cs.action.LoginAction" >
<property name="userDao" ref="userDao" />
</bean>
分享到:
相关推荐
为了实现Spring对Struts Action的管理,我们需要在Web应用中配置Spring容器,并通过Spring来创建和管理Struts中的Action实例。这样做的好处在于,Action实例的生命周期和依赖关系都可以由Spring容器来管理,提高了...
每个依赖项都有一个唯一的`groupId`、`artifactId`和`version`,这些信息用于从Maven中央仓库定位和获取正确的JAR包。 Spring的IoC(Inversion of Control)容器是实现DI的关键组件。在Maven构建的工程中,我们可以...
在Struts的配置文件中,配置Action并指定Spring中的Bean ID: ```xml <action name="myAction" class="com.example.MyAction"> <result>/success.jsp </action> ``` 三、整合优势 1. **依赖注入**:Spring通过DI...
从【部分内容】中可以看到,书中涉及Spring框架的多个方面,如权限控制、简单而有效的设计、权限覆盖、数据访问、测试驱动开发、依赖管理和配置、跨域资源共享(CORS)等。接下来详细说明这些知识点: 1. 权限控制...
1. **Spring概述**:讲解Spring的基本概念,包括核心模块、模块化结构以及Spring如何解决企业级开发中的问题。 2. **依赖注入**:详细介绍Spring如何管理对象的生命周期和依赖关系,包括构造器注入、setter注入以及...
通过学习《Spring in Action》中文版6-11章节,读者将能够掌握Spring框架的核心功能,理解如何在实际项目中运用Spring进行高效开发,并具备解决复杂问题的能力。同时,了解Spring生态中的其他组件如Spring Boot和...
Spring Cloud 提供了多种分布式系统集成解决方案,例如服务发现、配置管理、消息队列等。 8. Spring Native Spring Native 是 Spring 框架的子项目,提供了一个/native runtime环境,帮助开发者快速构建原生应用...
在大型项目中,Spring的IoC(Inversion of Control,控制反转)容器管理着所有服务、DAO(数据访问对象)、业务逻辑组件等。每个Bean的定义包括其类名、属性和依赖,通过@Autowired注解或标签的ref属性来实现依赖...
Spring in Action CN.001<br>Spring in Action CN.002<br>Spring in Action CN.003<br>Spring in Action CN.004<br>Spring in Action ...Spring in Action CN.BAT<br><br>Spring in Action 中文版的pdf文件较大...
《Spring in Action》是关于Spring框架的一本经典著作,第4版涵盖了Spring的最新发展,包括Spring Boot、Spring Data、Spring Security以及Spring Web Flow等重要模块。随书源码是学习和理解书中理论的最佳实践资源...
- **2.3.2 事务管理的配置**:提供示例展示如何在Spring中配置事务管理。 #### 2.4 Spring 的数据访问支持 - **2.4.1 Spring JDBC 支持**:介绍Spring如何简化JDBC操作。 - **2.4.2 Spring ORM 支持**:介绍Spring...
1. **依赖注入**:Spring的核心特性之一,允许开发者在运行时通过容器来管理对象的创建和依赖关系,从而降低了代码的耦合度,提高了可测试性和可维护性。DI可以通过XML配置、注解或者基于Java的配置实现。 2. **...
Spring Batch是一个开源的轻量级、全面的批处理框架,它是为了解决企业应用中的大规模数据处理需求而设计的。Spring Batch in Action是一本专注于Spring Batch框架的书籍,由Arnaud Cogoluègnes、Thierry Templier...
- 通过Spring管理Struts中的Action,可以减少大量的配置工作,使得代码更加简洁。 - 利用Spring的AOP(面向切面编程)特性,可以方便地添加如事务管理、日志记录等功能到Struts Action中,而无需修改Action本身的...
4. **整合Struts2、Spring和JPA**:在Action类中,通过Spring的@Autowired注解,可以直接注入需要的Service层对象,这些Service对象再通过JPA的EntityManager进行数据库操作。这样,请求处理(Struts2)、业务逻辑...
3. **Spring Bean与容器**:在Spring中,业务对象被称为Bean,它们由Spring容器进行管理和控制。容器负责创建Bean,管理它们的生命周期,并根据需要注入Bean之间的依赖。 4. **AOP(面向切面编程)**:Spring的AOP...
书中将展示如何在Spring应用中配置和使用事务管理。 10. **消息传递**:Spring框架也支持消息传递,如JMS(Java Message Service)。这部分内容可能涉及如何使用Spring与消息中间件交互,实现异步通信。 通过阅读...
《Spring in Action》第二版中文版是一本深受开发者欢迎的Spring框架入门与进阶书籍,旨在帮助读者深入理解和掌握Spring框架的核心概念和技术。这本书详细介绍了如何利用Spring进行企业级Java应用开发,包括依赖注入...
《Spring in Action 3.0》是一本针对Spring框架详细...通过阅读《Spring in Action 3.0》,开发者不仅能掌握Spring框架的核心概念和技术,还能学习到如何在实际项目中高效、灵活地应用Spring,提升开发效率和软件质量。