首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

spring、struts2单例小结

2012-11-20 
spring、struts2单例总结1.前提:struts2、spring2.x环境2.例子@Component//@Scope(prototype)public class

spring、struts2单例总结
1.前提:struts2、spring2.x环境

2.例子

@Component//@Scope("prototype")public class TestManager {private int i;public int getIndex() {return ++i;}}


用浏览器连续访问3次action控制台显示结果:
---------
testManager1:cn.com.super.service.TestManager@1a70128,i=1
testManager2:cn.com.super.service.TestManager@13cfd6e,i=1
---------
testManager1:cn.com.super.service.TestManager@1a70128,i=2
testManager2:cn.com.super.service.TestManager@5569ba,i=1
---------
testManager1:cn.com.super.service.TestManager@1a70128,i=3
testManager2:cn.com.super.service.TestManager@f4f9c,i=1


通过对注入的t1和new出来的t2两个实例变量的比较可知,t1在3次访问中只有一个实例,而t2则每次访问都是不同的实例。由此可知:
1.struts2创建的action为多例。
2.通过Autowired注入的bean默认为单例。
3.如果要让bean为多例可以添加注解:@Scope(“protorype”)。
4.若注入的bean为单例需要注意线程安全问题,尽量不要使用成员变量。
5.一个bean注入生成第一个实例后,以后不管在那个类中注入此bean都将使用第一次生成的这个实例,即整个过程中都只有这一个单例存在。

热点排行