`

spring将service注入到Action中(s1和s2)

 
阅读更多
spring将service注入到Action中



spring与struts1.x集成
方式一:Action交给spring管理,将业务类注入action         
引入spring-webmvc-struts.jar包到lib下,
struts-config.xml配置:
		<action name="StudentForm" path="/StudentList"
			parameter="actions"
			type="org.springframework.web.struts.DelegatingActionProxy">
			<forward name="list" path="/userList.jsp"/>
		</action>

 
spring配置applicationContext.xml:
    <bean name="/StudentList" class="com.org.momo.action.StudentAction" scope="prototype">
     <property name="studentService" ref="studentService" />
	</bean>

注意:保持spring配置的bean name和struts配置的action path一致

StudentAction.java:
private StudentService studentService ;	
public StudentService getStudentService() {
		return studentService;
	}
	public void setStudentService(StudentService studentService) {
		this.studentService = studentService;
	}


注意:加入上面applicationContext.xml里面的action移到applicationContext-action.xml里面时,
1.需在sturts-config.xml配置applicationContext-action.xml加载路径
	<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
		<set-property property="contextConfigLocation" value="classpath*:applicationContext-struts.xml" />
	</plug-in>
 


方式二:请求首先交给ActionServlet,然后给org.springframework.web.struts.DelegatingRequestProcessor,由这个请求处理器根据请求路径从spring容器获取action对象
 
struts-config.xml:
 
<action path="/searchAction">          
 <!--注意到没有?这里没有配置type属性-->  
    <forward name="success" path="/result.jsp"/>  
</action>  
<controller>  
    <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>  
</controller>
 


spring配置applicationContext.xml:     
<bean name="/searchAction" class="com.myproject.action.SearchAction" scope="prototype">
            <property name="searchService" ref="searchService"/>
 </bean>
 
 
      
方式三:Action不交给spring管理,直接在Action中实例化应用上下文,然后通过getBean("xxx"),获取相应业务对象
struts配置struts-config.xml:
<action path="/searchAction"  type="com.myproject.action.SearchAction">  
               <forward name="success" path="/result.jsp"/>  
</action>  
           
<action path="/searchAction"  type="com.myproject.action.SearchAction">
               <forward name="success" path="/result.jsp"/>
</action>

     
 
对应的Action处理类:

Actionprivate ApplicationContext context=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());   
 SearchService searchService=(SearchService)context.getBean("searchService");  
private ApplicationContext context=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
 SearchService searchService=(SearchService)context.getBean("searchService");
 
 
  
 
struts2.x与spring集成 
struts.properties 配置
struts.objectFactory=spring        #指定struts的action类实例由spring生成
 
struts-config.xml配置       
<action name="search" class="searchAction" method="searchMax">  
                  <result name="success">/result.jsp</result>  
                  <result name="error">/error.jsp</result>  
           </action>
  
      
spring配置文件applicationContext.xml:                 
<bean id="searchAction" class="com.myproject.action.SearchAction" scope="prototype">  
                    <property name="searchService" ref="searchService"/>  
           </bean>  
          
<action name="search" class="searchAction" method="searchMax">
                  <result name="success">/result.jsp</result>
                  <result name="error">/error.jsp</result>
           </action>







分享到:
评论

相关推荐

    Web服务器端在Action、dao、service之外实现spring注入

    我们在开发过程中经常会发生spring注入错误或失败的情况,其实Web服务器端在Action、dao、service包之内是很容易实现的,在这些包之外实现spring注入就不容易了,总是出错,其实根本原因是无法获得相应的spring上...

    spring学习:依赖注入的几种方式讨论

    本文将深入探讨Spring中的依赖注入实现方式,以及如何通过样例文件`sample-autoconfig`进行理解和实践。 一、XML配置的依赖注入 在Spring早期版本中,XML配置是最常见的DI方式。开发者在Spring的配置文件(如`...

    spring依赖注入底层详解

    2. 设值注入:通过setter方法将依赖对象注入到已经创建的对象中。这种方式灵活性较高,可以在对象生命周期中的任何时刻进行注入,但可能导致对象状态不一致。 3. 接口注入:Spring提供了一个SPI(Service Provider ...

    Spring中的方法注入

    - `@Autowired`:Spring的自动装配注解,可以自动将匹配类型的bean注入到字段或方法中。如果存在多个相同类型的bean,Spring会抛出异常,除非使用`@Qualifier`来指定具体哪一个bean。 - `@Qualifier`:当有多个...

    Spring依赖注入使用构造设注入demo

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,...

    Spring三种注入方式(一)

    本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 首先,我们来看构造器注入。构造器注入是在创建对象时,通过构造器传递依赖对象。这种方式强制了对象在创建时就必须提供所有必要的依赖...

    Spring Ioc 注解 依赖注入

    - **依赖注入**:依赖注入是一种设计模式,通过依赖注入,一个类的对象不再负责创建其依赖的对象,而是由外部容器(Spring容器)来负责创建这些依赖并注入到需要它们的地方。 #### 三、Spring IoC容器的工作原理 ...

    Spring Ioc(依赖注入)入门例子--属性注入

    这通常用于将服务对象注入到需要使用它们的客户端对象中。在Spring中,有两种主要的属性注入方式:setter方法注入和构造器注入。 1. Setter方法注入:这是最常用的方式,通过在类中定义带有`set`前缀的方法,Spring...

    s2sh整合 源码 struts2 hibernate spring

    6. **编写业务逻辑**:Action类中注入Service,Service中注入DAO,DAO使用SessionFactory进行数据库操作。 通过这样的整合,开发者可以充分利用三个框架的优点,构建出高效、灵活、易于维护的企业级Web应用。S2SH的...

    Spring的依赖注入,与前置通知的实例

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它允许对象之间的耦合性降低,使得代码更易于测试和维护。依赖注入的核心思想是将一个对象依赖的其他对象通过构造函数、setter方法...

    Spring In Action 属性注入

    本文将深入探讨Spring中的属性注入,以帮助开发者更好地理解和运用这一关键功能。 一、属性注入的概念与类型 属性注入是Spring框架的核心特性之一,它通过容器来控制对象的创建和初始化,而不是由对象自己管理其...

    Spring注释 注入方式源码示例,Annotation

    凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处需要注入对象,所以用@Resource就有了ref的功效。 要用注解注入方式...

    spring依赖注入

    `@Autowired`注解自动将匹配类型的bean注入到字段或方法中,而`@Qualifier`则可以用于指定注入哪个特定的bean。 总之,Spring的依赖注入是通过容器管理对象间的依赖关系,从而简化了代码的编写和维护。通过构造器、...

    第四章 Spring4 注入参数

    Spring4允许我们将基本数据类型(如int、String、boolean等)以及它们的包装类作为属性注入到Bean中。例如,我们可以在配置文件中使用`&lt;property&gt;`标签或者在Java配置类中使用`@Value`注解来指定值: ```xml 张三...

    spring依赖注入的实现原理

    Spring依赖注入(Dependency Injection,简称DI)是Java应用开发中常用的设计模式,它极大地提高了代码的可测试性和可维护性。在Spring框架中,依赖注入是核心特性之一,通过控制反转(Inversion of Control,IoC)...

    Spring_依赖注入_面向接口编程_不同加载方式

    本项目以"Spring_依赖注入_面向接口编程_不同加载方式"为主题,旨在帮助初学者理解Spring的核心特性——依赖注入(Dependency Injection,简称DI),以及如何通过面向接口编程来提高代码的可维护性和可扩展性。...

    Spring的自动扫描注入.docx

    例如,将 DAO 实现类注入到 Service 实现类中,将 Service 的接口(注意不要是 Service 的实现类)注入到 Action 中。在注入时,不要手动 new 该注入的类,因为 Spring 会自动注入。使用 @Autowired 后,不需要 ...

    Spring IOC之方法注入

    在Spring框架中,IOC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理交给了容器,从而使代码更加灵活、易于维护。本文将深入探讨Spring中的一个特殊概念——方法注入,它是IOC的一种扩展...

    springmvc框架已做service注入

    这个设计模式充分利用了 Spring 框架的依赖注入(Dependency Injection, DI)特性,使得 Service 实例可以在运行时自动注入到 Controller 中,无需手动创建和管理 Service 对象。 首先,让我们理解一下 Spring MVC ...

    struts2+spring+hibernate整合中spring注入出错。页面中报空指针异常。高手来看看怎么决绝。

    可以考虑将依赖的初始化移到setter方法中,让Spring在调用setter时注入。 7. **测试与调试**:使用IDE的断点调试功能,查看Action类实例化时的上下文,检查注入的对象是否为空。同时,检查日志输出,看是否有关于...

Global site tag (gtag.js) - Google Analytics