如何使用Spring来管理Struts中的Action
2014-02-02 11:48
274 查看
当指定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方法处理数据的时候,可能会有线程安全上的风险。
(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
- 如何使用Spring来管理Struts中的Action
- 在spring来管理实例对象prototype和singleton的选择.针对action如何使用
- 在struts.xml文件中使用spring代理,管理action
- 使用Spring的注解方式注入Struts所管理的action
- 在spring来管理实例对象prototype和singleton的选择.针对action如何使用
- ssh整合系列博客——(3)在jsp中如何使用spring管理的bean
- Quartz使用问题: 如何将被Spring管理的类注入到不被Spring管理的Job类中
- 使用struts和spring开发时遇到Unable to load configuration. - action - |Caused by: Action class [login] not found - action -
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-008-使用非关系型数据库时如何验证用户(自定义UserService)
- 关于用spring来管理Struts中的action 所出现的问题
- 如何在自定义Listener(监听器)中使用Spring容器管理的bean
- 使用spring 的action-servlet.xml解决struts线程问题
- 如何在Listener(监听器)中使用spring容器管理的bean(自定义监听使用spring管理的bean)
- 如何在自定义Listener(监听器)中使用Spring容器管理的bean
- 线程安全问题(解决) -------使用spring 的action-servlet.xml解决struts线程问题
- 在servlet中如何使用被Spring管理的service
- Spring管理Struts Action
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前和调用后记录相关日志。)