`

如何解决在action中每次都要从spring管理的配置中区获取对象问题

阅读更多
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的代码

    为了实现Spring对Struts Action的管理,我们需要在Web应用中配置Spring容器,并通过Spring来创建和管理Struts中的Action实例。这样做的好处在于,Action实例的生命周期和依赖关系都可以由Spring容器来管理,提高了...

    Spring in Action 使用Maven 构建Spring 工程

    每个依赖项都有一个唯一的`groupId`、`artifactId`和`version`,这些信息用于从Maven中央仓库定位和获取正确的JAR包。 Spring的IoC(Inversion of Control)容器是实现DI的关键组件。在Maven构建的工程中,我们可以...

    struct和spring整合的配置

    在Struts的配置文件中,配置Action并指定Spring中的Bean ID: ```xml &lt;action name="myAction" class="com.example.MyAction"&gt; &lt;result&gt;/success.jsp &lt;/action&gt; ``` 三、整合优势 1. **依赖注入**:Spring通过DI...

    Spring in action中文版(第4版)

    从【部分内容】中可以看到,书中涉及Spring框架的多个方面,如权限控制、简单而有效的设计、权限覆盖、数据访问、测试驱动开发、依赖管理和配置、跨域资源共享(CORS)等。接下来详细说明这些知识点: 1. 权限控制...

    Spring in Action 第四版英文原版+源码

    1. **Spring概述**:讲解Spring的基本概念,包括核心模块、模块化结构以及Spring如何解决企业级开发中的问题。 2. **依赖注入**:详细介绍Spring如何管理对象的生命周期和依赖关系,包括构造器注入、setter注入以及...

    spring_in_action-sixth-edition.pdf

    Spring Cloud 提供了多种分布式系统集成解决方案,例如服务发现、配置管理、消息队列等。 8. Spring Native Spring Native 是 Spring 框架的子项目,提供了一个/native runtime环境,帮助开发者快速构建原生应用...

    spring in action的jar包

    2. **Spring Beans**:负责管理对象的生命周期和配置,是DI的实现部分。XML配置文件或者基于注解的方式都可以用来定义和管理Bean。 3. **Spring AOP**:实现了AOP,可以创建切面并定义通知(advises),这些通知...

    spring in action 中文版6-11.zip

    通过学习《Spring in Action》中文版6-11章节,读者将能够掌握Spring框架的核心功能,理解如何在实际项目中运用Spring进行高效开发,并具备解决复杂问题的能力。同时,了解Spring生态中的其他组件如Spring Boot和...

    大型项目的struts,spring配置文件

    在大型项目中,Spring的IoC(Inversion of Control,控制反转)容器管理着所有服务、DAO(数据访问对象)、业务逻辑组件等。每个Bean的定义包括其类名、属性和依赖,通过@Autowired注解或标签的ref属性来实现依赖...

    Spring in Action 源码

    《Spring in Action》是关于Spring框架的一本经典著作,第4版涵盖了Spring的最新发展,包括Spring Boot、Spring Data、Spring Security以及Spring Web Flow等重要模块。随书源码是学习和理解书中理论的最佳实践资源...

    Spring+in+action+中文版(第4版)

    - **2.3.2 事务管理的配置**:提供示例展示如何在Spring中配置事务管理。 #### 2.4 Spring 的数据访问支持 - **2.4.1 Spring JDBC 支持**:介绍Spring如何简化JDBC操作。 - **2.4.2 Spring ORM 支持**:介绍Spring...

    Spring in Action.中文+ 英文版.

    1. **依赖注入**:Spring的核心特性之一,允许开发者在运行时通过容器来管理对象的创建和依赖关系,从而降低了代码的耦合度,提高了可测试性和可维护性。DI可以通过XML配置、注解或者基于Java的配置实现。 2. **...

    spring管理struts和hibernate

    - 通过Spring管理Struts中的Action,可以减少大量的配置工作,使得代码更加简洁。 - 利用Spring的AOP(面向切面编程)特性,可以方便地添加如事务管理、日志记录等功能到Struts Action中,而无需修改Action本身的...

    Struts2 Spring Jpa 配置测试

    4. **整合Struts2、Spring和JPA**:在Action类中,通过Spring的@Autowired注解,可以直接注入需要的Service层对象,这些Service对象再通过JPA的EntityManager进行数据库操作。这样,请求处理(Struts2)、业务逻辑...

    springInAction第四版中文版

    3. **Spring Bean与容器**:在Spring中,业务对象被称为Bean,它们由Spring容器进行管理和控制。容器负责创建Bean,管理它们的生命周期,并根据需要注入Bean之间的依赖。 4. **AOP(面向切面编程)**:Spring的AOP...

    Spring in Action 第二版

    书中将展示如何在Spring应用中配置和使用事务管理。 10. **消息传递**:Spring框架也支持消息传递,如JMS(Java Message Service)。这部分内容可能涉及如何使用Spring与消息中间件交互,实现异步通信。 通过阅读...

    spring in action 第二版中文版

    《Spring in Action》第二版中文版是一本深受开发者欢迎的Spring框架入门与进阶书籍,旨在帮助读者深入理解和掌握Spring框架的核心概念和技术。这本书详细介绍了如何利用Spring进行企业级Java应用开发,包括依赖注入...

    Spring in action 3.0

    《Spring in Action 3.0》是一本针对Spring框架详细...通过阅读《Spring in Action 3.0》,开发者不仅能掌握Spring框架的核心概念和技术,还能学习到如何在实际项目中高效、灵活地应用Spring,提升开发效率和软件质量。

    Spring_in_Action

    《Spring in Action》是一本深度剖析Spring框架的权威著作,旨在帮助读者全面理解并熟练运用Spring进行企业级应用开发。该书深入浅出地讲解了Spring的核心概念、配置方式、依赖注入、AOP(面向切面编程)、数据访问...

Global site tag (gtag.js) - Google Analytics