spring中,bean的作用域有五种类型:默认是单例模式,
singleton
prototype
request
session
global session
配置作用域时,使用 scope属性,xml文件配置如下,
查看spring官方文档,解释如下:
1、singleton
如果一个bean配置为singelton,表示该bean在spring IOC容器中只有一个实例,也就是单例
配置如下:下面两种配置是一样的,默认使用singleton
可以新建spring工程进行测试:观察返回为true还是false
2、prototype
prototype作用域部署的bean,每一次请求都会产生一个新的bean实例,相当与一个new的操作
对于prototype新建的实例,spring容器不会执行他的生命周期回调方法,可以参考我写的spring之生命周期文档。
spring官方文档中解释如下
3、request, session, and global session scopes这三种作用域主要用在web中,
request:表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效
session:表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效
global session:表示该针对每一次HTTP请求都会产生一个新的bean,不过它仅仅在基于portlet的web应用中才有意义