bean属性scope
- 名称:scope
- 类型:属性
- 归属:bean标签
- 作用:定义bean的作用范围
- 格式
<bean scope="singleton"></bean>
- 取值:
singleton:设定创建出的对象保存在spring容器中,是一个单例的对象
prototype:设定创建出的对象保存在spring容器中,是一个非单例的对象
request、session、application、websocket:设定创建出的对象放置在web容器对应的位置
接上个项目:
在写一个bean,内容如下
UserApp内容如下
结果如下
可见三个bean的内存地址是一样的
而且是同一个对象(true)
修改applicationContext.xml中第二个bean的scope为prototype
再运行后结果如下
可见这三个内存不一样了,也不是同一个对象了(false)
scope默认是单例singleton,单例的创建是在加载Spring容器的时候就创建好了(加载创建)
scope为prototype时,是在获取对象的时候才创建,获取一次,创建一次(用到的时候才创建)