sping+struts2中配置Action的bean中scope="prototype"的作用
2014-11-19 17:43
141 查看
昨天发了一篇文章《奇妙的paramsPrepareParamsStack——Struts2中ModelDriven问题》其实那也不是原因是根本,那个解决方法还是一样如我前面采用的方法:在每次转向之前把对象清空然后初始化一下。只是昨天是在每次调用方法之前在值注入之前先清空初始化了一下。
发现自己在开发中就如田埂上突然冒出个洞,田埂上的田里的水流入我的田里,可我根本不去查明到底是老鼠,蛇还是其他虫子打的洞,而是发现一个洞补一个洞的做法。——真是大忌啊!
今天又搜索了一下才发现原来是这个问题:
下面是struts2+hibernate+spring配置文件的一部分,以前都是仿造已经写好的bean的配置。有一次 scope="prototype"忘记写了结果出了问题 ,其默认是scope="singleton",唯一的。
项目中对一个表的增删该操作是用一个action,这个action有add,update,delete,save这些方法,添加和修改是共用一个页面,当页面得到id时代表进行的修改操作,反之是添加操作。因为在配置spring的bean是忘了写scope="prototype"所以每次添加时都显示最后一次访问过的记录。
找了很长时间,原来是spring bean出了问题。 scope="prototype" 会在该类型的对象被请求时创建一个新的action对象。如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息。
<bean id="assetAction" class="com.servicezone.itsd.asset.webapp.action.AssetAction" scope="prototype">
<property name="assetManager" ref="assetManager"/>
<property name="itProductManager" ref="itProductManager"/>
<property name="vendorManager" ref="vendorManager"/>
<property name="deptManager" ref="deptManager"/>
<property name="userManager" ref="userManager"/>
<property name="assetTypeManager" ref="assetTypeManager"/>
</bean>
发现自己在开发中就如田埂上突然冒出个洞,田埂上的田里的水流入我的田里,可我根本不去查明到底是老鼠,蛇还是其他虫子打的洞,而是发现一个洞补一个洞的做法。——真是大忌啊!
今天又搜索了一下才发现原来是这个问题:
下面是struts2+hibernate+spring配置文件的一部分,以前都是仿造已经写好的bean的配置。有一次 scope="prototype"忘记写了结果出了问题 ,其默认是scope="singleton",唯一的。
项目中对一个表的增删该操作是用一个action,这个action有add,update,delete,save这些方法,添加和修改是共用一个页面,当页面得到id时代表进行的修改操作,反之是添加操作。因为在配置spring的bean是忘了写scope="prototype"所以每次添加时都显示最后一次访问过的记录。
找了很长时间,原来是spring bean出了问题。 scope="prototype" 会在该类型的对象被请求时创建一个新的action对象。如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息。
<bean id="assetAction" class="com.servicezone.itsd.asset.webapp.action.AssetAction" scope="prototype">
<property name="assetManager" ref="assetManager"/>
<property name="itProductManager" ref="itProductManager"/>
<property name="vendorManager" ref="vendorManager"/>
<property name="deptManager" ref="deptManager"/>
<property name="userManager" ref="userManager"/>
<property name="assetTypeManager" ref="assetTypeManager"/>
</bean>
相关文章推荐
- sping+struts2中配置Action的bean中scope="prototype"的作用
- Struts2+hibernate+spring 配置文件中scope="prototype"的作用
- Spring配置<bean>时加scope="prototype"的原因
- struts+spring action应配置为scope="prototype"
- struts2.0中spring配置文件中action的属性 scope="prototype" .
- Struts2+hibernate+spring 配置文件中scope="prototype"的作用 .
- Struts2+hibernate+spring 配置文件中scope="prototype"的作用
- struts+spring action应配置为scope="prototype"
- Struts2+hibernate+spring 配置文件中scope="prototype"的作用
- struts2.0中spring配置文件中action的属性 scope="prototype"
- struts+spring action应配置为scope="prototype"
- struts+spring action应配置为scope="prototype"
- Spring注解@Scope("prototype") Spring在Action上面注解@Scope("prototype")
- struts+spring action应配置为scope="prototype"
- spring bean scope="prototype" 有状态bean 无状态bean
- struts+spring action应配置为scope="prototype"
- spring管理Struts2的action时应配置scope="prototype"
- struts2.0中spring配置文件中action的属性 scope="prototype"
- Struts2+hibernate+spring 配置文件中scope="prototype"的作用
- Spring 注解 @Scope("prototype") 的作用