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