作用域scope:
作用域 | 描述 |
---|---|
singleton | 在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,bean作用域范围的默认值。 |
prototype | 每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean()。 |
request | 每次HTTP请求都会创建一个新的Bean,该作用域仅适用于web的Spring WebApplicationContext环境。 |
session | 同一个HTTP Session共享一个Bean,不同Session使用不同的Bean。该作用域仅适用于web的Spring WebApplicationContext环境。 |
application | 限定一个Bean的作用域为ServletContext的生命周期。该作用域仅适用于web的Spring WebApplicationContext环境。 |
代码实现设置多实例:
<bean id="book" class="com.spring5.collectiontype.Book" scope="prototype">
<property name="list" ref="bookList"></property>
</bean>
执行结果,对象不一致:
com.spring5.collectiontype.Book@4b53f538
com.spring5.collectiontype.Book@134593bf
1、在Spring里面,可以设置创建的bean实例是单实例还是多实例
2、在Spring里面,默认情况下,bean是单实例对象
singleton和prototype区别
第一:singleton单实例,prototype多实例
第二:设置scope值是singleton时候,加载spring配置文件时候就会创建单实例对象
设置scope值是prototype时候,不是在加载spring配置文件时候创建对象,在调用getBean方法时候创建多实例对象