【三】Bean的基本scope
Scope表示Bean的范围,用来定义Bean在什么范围不需要重新创建,超出了范围要重新创建。默认是singleton,在一个Spring容器中存在一个实例。
写两个Service,如下图:
在BeanConfig类中配置它们,都传递pojoBean做为构造参数,如下图:
启动应用,控制台打印如下:
可以看到,PojoBean只实例了一次,并且ServiceA和ServiceB中的PojoBean的引用值相同。
在BeanConfig的PojoBean配置上加上@Scope("prototype"),如下图:
再启动应用,控制台打印如下图:
可以看到PojoBean实例了两次,并且ServiceA和ServiceB中PojoBean的引用不同,说明是两个实例。
注意:这次没有打印destroy相关的东西,这是因为prototype的Scope只负责创建,后面的生命周期要自己进行管理。