java

位置:IT落伍者 >> java >> 浏览文章

由spring管理struts的Action实例


发布日期:2019年04月02日
 
由spring管理struts的Action实例

当指定strutsobjectFactory为spring时struts框架就会把bean转发给spring来创建装配注入但是bean创建完成之后还是由struts容器来管理其生命周期配置方式

()strutsxml中


xml 代码

<constantname=strutsobjectFactoryvalue=spring/>

()strutsproperties中

java 代码

strutsobjectFactory=spring

通常情况下这样子就够了然后在struts的actionmapping配置文件中如下

xml 代码

<actionname=userclass=commyappadminwebactionuserUserAction></action>

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

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

xml 代码

<beanid=userclass=commyappwebactionuserUserAction/>

然后在actionmapping中指定class=user即可

需要注意的一个地方Spring中的缺省作用域是Singleton作用域而往往Action属于有状态的bean应该使用prototype作用域<bean id=user class=commyappwebactionuserUserAction singleton=false/> 如果忽略这个细节在我们方便实用setget方法处理数据的时候可能会有线程安全上的风险

上一篇:Struts2教程2:处理一个form多个submit

下一篇:Struts处方:Hibernate与Struts