strus+spring整合后 的脏数据问题如何解决

         
JonZhang
07-05-11 4 551

把action委托给spring创建后,解决了action线程安全问题,在action里的全局变量用spring ioc注入后,会出现历史脏数据。我要求每个aciton的全局变量是原始对象,spring怎么解决这个问题?

banq
2007-05-15 14:09

脏数据一般和持久层事务设置有关,与表现层 业务层关系不大。

JonZhang
2007-05-16 15:13

谢谢banq大哥,我说的可能不太清楚;我的意思是通过spring创建数据model实例,再注入到action,通过跟踪测试,发现如果这个类已经创建过,spring就返回了已经使用过的那个实例,因而这个model实例就存在脏数据;我用spring ioc 和XmlBeanFactory两种方式都是同样的结果。如果是这样的话,需要写代码清除实例的脏数据,我想让spring每次创建个新的实例,不知道该怎么配置?
我的配置是这样的:

<bean id="tblRltModel" class="com.hqly.model.codeengine.TblRltModel" singleton="false"/>
<bean id="tblRltAction" class="com.hqly.web.action.TblRltAction" />
<bean name="/tblRltAction" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyTargetClass">
<value>true</value>
</property>
<property name="singleton">
<value>false</value>
</property>

<property name="target">
<ref local="tblRltAction" />
</property>
<property name="interceptorNames">
<list>
<value>authInterceptor</value>
</list>

</property>
</bean>

banq
2007-05-17 12:37

>发现如果这个类已经创建过,spring就返回了已经使用过的那个实例
是的,所以,你不能使用Spring来配置Model对象,只能配置Service等组件服务或Dao对象。

bennyparlo
2007-09-13 15:09

bean在容器中的生命周期,isSingleton="false"
[该贴被bennyparlo于2007年09月13日 15:51修改过]