`

如何使用Spring来管理Struts中的Action

    博客分类:
  • JAVA
阅读更多
当指定struts.objectFactory为spring时,struts2框架就会把bean转发给spring来创建,装配,注入。但是bean创建完成之后,还是由struts容器来管理其生命周期。配置方式:

(1)struts.xml中:

xml 代码:

< constant name="struts.objectFactory" value="spring" />

(2)struts.properties中:

java 代码:

struts.objectFactory=spring

通常情况下,这样子就够了,然后在struts的action-mapping配置文件中,如下:

xml 代码:

< action name="user" class="com.myapp.admin.web.action.user.UserAction">

即可,如果在Action中有依赖于其它的BEAN,也会被自动注入进来。这时候,Action实例是以prototype方式创建的,SPRING会为每个请求创建一个ACTION的实例。

在某些时候,你可能希望不仅仅让SPRING创建和装配Action对象,还希望让SPRING完全管理这些对象,如希望使用AOP或者希望使用acegi时。这时候,只需要在spring的配置文件中定义这些action 即可。如在applicationContext.xml文件中:

xml 代码:

< bean id="user" class="com.myapp.web.action.user.UserAction"/>

然后在action-mapping中,指定class="user"即可。

需要注意的一个地方:Spring中的缺省作用域是Singleton作用域。而往往Action属于有状态的bean,应该使用prototype作用域。

< bean id="user" class="com.myapp.web.action.user.UserAction" singleton="false"/>

如果忽略这个细节,在我们方便实用set,get方法处理数据的时候,可能会有线程安全上的风险。
分享到:
评论

相关推荐

    spring管理struts的action的代码

    这样做的好处在于,Action实例的生命周期和依赖关系都可以由Spring容器来管理,提高了代码的复用性和可测试性。 #### 三、配置Spring容器 在Web应用中配置Spring容器的关键步骤之一是在`web.xml`文件中配置...

    spring管理struts和hibernate

    - 使用Spring的`&lt;bean&gt;`元素来创建Struts Action的实例,同时可以利用Spring的依赖注入特性来管理Action与其他组件之间的依赖关系。 2. **简化开发流程**: - 通过Spring管理Struts中的Action,可以减少大量的...

    图书管理系统spring+struts+hibernate

    《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...

    Spring整合Struts

    2. 在&lt;action-mapping&gt;的type属性中使用DelegatingActionProxy类。 这两种方法都能让你在action-context.xml文件中管理Action及其依赖关系。通过在struts-config.xml和action-servlet.xml之间建立的桥梁,即action-...

    Spring整合集成Struts1.2最简单例子

    将Spring与Struts1.2整合,可以利用Spring的强大功能来管理Struts的Action和业务逻辑,提高代码的可测试性和可维护性。 4. **整合步骤** - **配置Spring**:首先创建Spring配置文件(如`applicationContext.xml`...

    CXF2.1.3+spring3.0+struts2.3.4

    综合来看,"CXF2.1.3+spring3.0+struts2.3.4"的组合为开发者提供了一个强大的工具集,用于构建可扩展、灵活且易于维护的Web服务应用。通过CXF创建服务,利用Spring进行组件管理和依赖注入,再借助Struts2处理用户...

    Spring之Spring2.5集成Struts2.2

    该插件允许Struts2的动作类(Action)作为Spring的bean来管理,从而利用Spring的依赖注入。 5. **Action类的配置**:Action类可以标记为Spring的bean,通过`@Component`注解,或者在Spring的配置文件中定义bean。...

    spring和struts的整合-aop的使用

    它可能包含了Spring的bean定义,或者是在Struts2中使用Spring时需要的特定配置。具体用途需要根据文件内容来解读。 总之,Spring与Struts2的整合能够提升应用的灵活性和可扩展性,而AOP的使用则进一步增强了代码的...

    spring_struts_hibernate整合开发书籍

    在书中,读者将学习到如何设置Struts2的配置文件,创建Action类,以及如何使用Struts2的拦截器来实现业务逻辑的封装。 Hibernate是Java领域中的一款优秀的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者...

    spring3+struts2+ibatis

    Spring作为整个应用的调度中心,管理所有对象的生命周期,包括Struts2的Action和Ibatis的SqlSession。Struts2负责接收HTTP请求,调用Action执行业务逻辑,而业务逻辑中的数据访问操作由Ibatis完成。Spring还可以提供...

    spring_struts整合jar包

    1. **Spring作为依赖注入容器**:Struts的Action类可以通过Spring管理,实现依赖注入,这样Action类可以在不关心依赖如何创建的情况下使用它们。 2. **Spring MVC与Struts2的集成**:虽然两者都有MVC模式,但在整合...

    使用Spring整合Struts编写多页面用户注册模块

    在每个Action中,我们可以使用Spring的Service层来与数据库交互,存储或验证用户数据。 在项目配置方面,我们需要设置Struts的struts.xml文件,定义Action的配置,包括Action类、方法映射以及结果页面。同时,还...

    mybatis3+spring4+struts2.3整合jar

    - **与Spring的配合**:通过Spring插件,Struts 2可以利用Spring的依赖注入来创建Action实例,避免了在Action类中使用setter方法设置依赖。 这个压缩包文件 "mybatis3+spring4+struts2.3" 很可能包含了这三者集成...

    Spring与Struts集成方式一

    - 或者,使用Spring的Struts插件(`struts-spring-plugin.xml`),该插件会自动扫描Spring配置文件中的bean,并将它们作为Action实例注入到Struts中。 4. **异常处理**: - Spring提供了全局异常处理机制,可以...

    spring+struts2图书管理系统

    然后,创建一个对应的Service接口和实现类,这个Service类可以注入到Struts2的Action中,用于处理用户的请求,如查询、添加、删除图书等操作。数据库操作则通过Spring JDBC模块来完成,可以编写 Dao(Data Access ...

    Spring2.0整合Struts2.0

    这个压缩包中的"SpringStruts2"示例项目很可能就是这样一个整合实例,包含了配置文件、Action类和必要的注释,是学习和理解两者整合的好资源。深入研究并实践这个示例,有助于提升对Spring和Struts2整合的理解和应用...

    spring与struts2整合

    Spring 的 DI 机制允许开发者通过配置文件或注解来管理对象及其依赖关系,降低了代码的耦合度,使得组件更易于测试和维护。此外,AOP 使我们能够定义横切关注点,如日志记录、事务管理等,从而保持业务逻辑的清晰。 ...

    spring和struts整合的三种方案

    这两种处理器都允许 Spring 自动管理 Struts 中的 Action 对象。例如,配置如下: ```xml &lt;set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/&gt; `...

    Spring与Struts2整合

    - **更灵活的依赖注入**:使用Spring的DI,可以轻松地更换和配置Action中的依赖。 - **事务管理**:Spring提供了强大的事务管理功能,可以方便地进行事务控制。 - **AOP支持**:Spring的AOP可以用于实现如日志、权限...

    整合struts2和spring

    3. **配置Struts2**:在Struts2的配置文件(struts.xml)中,需要声明Spring插件,告诉Struts2使用Spring来管理Action实例。这样,每次请求时,Struts2会从Spring容器中获取Action实例,而不是使用默认的实例化方式...

Global site tag (gtag.js) - Google Analytics