Bean默认是单例模式,即每个对象只会被创建一次。前一次获取过的对象,这一次获取的还是之前创建过的。
如果我们希望每次拿到的对象都是一个新的,我们也可以将其作用域进行修改:
<bean class="com.test.bean.Student" scope="prototype" />
scope
作用域有两种:
- singleton,也就是默认的单例模式
- prototype,原型模式,也可以叫多例模式
创建顺序
当Bean的作用域为单例模式时,那么它会在一开始(容器加载配置时)就被创建,我们之后拿到的都是这个对象。而处于原型模式下,只有在获取时才会被创建。
单例模式下,Bean会被IoC容器存储,只要容器没有被销毁,那么此对象将一直存在,而原型模式才是相当于在要用的时候直接new了一个对象,并不会被保存。