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>
分享到:
相关推荐
我们在开发过程中经常会发生spring注入错误或失败的情况,其实Web服务器端在Action、dao、service包之内是很容易实现的,在这些包之外实现spring注入就不容易了,总是出错,其实根本原因是无法获得相应的spring上...
本文将深入探讨Spring中的依赖注入实现方式,以及如何通过样例文件`sample-autoconfig`进行理解和实践。 一、XML配置的依赖注入 在Spring早期版本中,XML配置是最常见的DI方式。开发者在Spring的配置文件(如`...
2. 设值注入:通过setter方法将依赖对象注入到已经创建的对象中。这种方式灵活性较高,可以在对象生命周期中的任何时刻进行注入,但可能导致对象状态不一致。 3. 接口注入:Spring提供了一个SPI(Service Provider ...
- `@Autowired`:Spring的自动装配注解,可以自动将匹配类型的bean注入到字段或方法中。如果存在多个相同类型的bean,Spring会抛出异常,除非使用`@Qualifier`来指定具体哪一个bean。 - `@Qualifier`:当有多个...
在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,...
本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 首先,我们来看构造器注入。构造器注入是在创建对象时,通过构造器传递依赖对象。这种方式强制了对象在创建时就必须提供所有必要的依赖...
- **依赖注入**:依赖注入是一种设计模式,通过依赖注入,一个类的对象不再负责创建其依赖的对象,而是由外部容器(Spring容器)来负责创建这些依赖并注入到需要它们的地方。 #### 三、Spring IoC容器的工作原理 ...
这通常用于将服务对象注入到需要使用它们的客户端对象中。在Spring中,有两种主要的属性注入方式:setter方法注入和构造器注入。 1. Setter方法注入:这是最常用的方式,通过在类中定义带有`set`前缀的方法,Spring...
2. Setter注入:通过setter方法将依赖对象注入到需要它们的对象中。这种方式更为灵活,可以在对象创建后任何时候进行注入,但可能使对象在未完全初始化的状态下被使用。 Spring提供了两种方式来声明和管理bean:XML...
6. **编写业务逻辑**:Action类中注入Service,Service中注入DAO,DAO使用SessionFactory进行数据库操作。 通过这样的整合,开发者可以充分利用三个框架的优点,构建出高效、灵活、易于维护的企业级Web应用。S2SH的...
在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它允许对象之间的耦合性降低,使得代码更易于测试和维护。依赖注入的核心思想是将一个对象依赖的其他对象通过构造函数、setter方法...
本文将深入探讨Spring中的属性注入,以帮助开发者更好地理解和运用这一关键功能。 一、属性注入的概念与类型 属性注入是Spring框架的核心特性之一,它通过容器来控制对象的创建和初始化,而不是由对象自己管理其...
凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处需要注入对象,所以用@Resource就有了ref的功效。 要用注解注入方式...
`@Autowired`注解自动将匹配类型的bean注入到字段或方法中,而`@Qualifier`则可以用于指定注入哪个特定的bean。 总之,Spring的依赖注入是通过容器管理对象间的依赖关系,从而简化了代码的编写和维护。通过构造器、...
Spring4允许我们将基本数据类型(如int、String、boolean等)以及它们的包装类作为属性注入到Bean中。例如,我们可以在配置文件中使用`<property>`标签或者在Java配置类中使用`@Value`注解来指定值: ```xml 张三...
Spring依赖注入(Dependency Injection,简称DI)是Java应用开发中常用的设计模式,它极大地提高了代码的可测试性和可维护性。在Spring框架中,依赖注入是核心特性之一,通过控制反转(Inversion of Control,IoC)...
例如,将 DAO 实现类注入到 Service 实现类中,将 Service 的接口(注意不要是 Service 的实现类)注入到 Action 中。在注入时,不要手动 new 该注入的类,因为 Spring 会自动注入。使用 @Autowired 后,不需要 ...
在这个例子中,Spring 会自动找到合适的 `Dependency` 实例并注入到 `MyService` 中。 **测试和运行** 在 Java 应用中,我们可以创建一个主类来启动应用程序,并从 Spring 容器中获取 Bean 实例。例如: ```java ...
在Spring框架中,IOC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理交给了容器,从而使代码更加灵活、易于维护。本文将深入探讨Spring中的一个特殊概念——方法注入,它是IOC的一种扩展...
根据提供的信息,我们可以总结并详细解释《Spring in Action 中文版(第4版)》这本书中的关键知识点。这本书是Spring框架开发的必备指南,从基础知识到高级应用都有涉及,并且配有大量的实例帮助读者理解和掌握...