Spring 容器是通过单例模式创建 Bean 对象的,也就是说,
默认情况下,通过调用
ac.getBean("mybean")方法获得的对象都是同一个 mybean 对象
使用单例模式有风险,风险在于多线程并发访问时会有一些状况。
那么如何取消容器默认单例模式创建对象?
14) 修改
applicationContext.xml
设置创建 bean 的模式为原型模式(prototype)即可以
代码片段
<bean
id="mybean"
lazy-init="true"
scope="prototype"
class="tarena.demo3.MyBean"></bean>
15)
运行 Test
注意:调用了 2 次 MyBean 的构造方法,说明创建了 2 个对象
scope 属性的取值
在 web(仅限于
web 项目)环境中,还可以设置所创建的 bean 对象的生命周期和
request、session
?
request 表示 bean 对象生命周期和 request 生命周期相同
?
session 同 session
? global
session 相当于 application
? single
?
prototype
spring scope 属性的取值,布布扣,bubuko.com
原文:http://www.cnblogs.com/shaohz2014/p/3717663.html