【三】Bean的基本scope

Scope表示Bean的范围,用来定义Bean在什么范围不需要重新创建,超出了范围要重新创建。默认是singleton,在一个Spring容器中存在一个实例。

写两个Service,如下图:

【三】Bean的基本scope

【三】Bean的基本scope

在BeanConfig类中配置它们,都传递pojoBean做为构造参数,如下图:

【三】Bean的基本scope

启动应用,控制台打印如下:

【三】Bean的基本scope

可以看到,PojoBean只实例了一次,并且ServiceA和ServiceB中的PojoBean的引用值相同。

在BeanConfig的PojoBean配置上加上@Scope("prototype"),如下图:

【三】Bean的基本scope

再启动应用,控制台打印如下图:

【三】Bean的基本scope

可以看到PojoBean实例了两次,并且ServiceA和ServiceB中PojoBean的引用不同,说明是两个实例。

注意:这次没有打印destroy相关的东西,这是因为prototype的Scope只负责创建,后面的生命周期要自己进行管理。