spring作用域
@Scope("")
1、singleton 单例(默认)
当把 一个bean定义设置为singleton作用域时,Spring IOC容器只会创建该bean的唯一实例,并将其存储到单例缓存(singleton cache)中,所有针对该bean的后续请求和引用都将返回被缓存的对象实例
2、prototype 原型
每次引用该类都会产生一个新的bean实例,相当与一个new的操作,Spring不能对一个prototype bean的整个生命周期负责,容器在初始化、配置、装饰或者是装配完一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了
3、request
request表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效
4、session
session作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效
5、global session
lobal session作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义
spring循环依赖场景
当spring在默认单例模式中,各Bean之间出现相互引用形成闭环(套娃),程序将抛出BeanCurrentlyInCreationException异常
1、原型(Prototype)场景下的依赖(无法解决)
对于"prototype"作用域bean&#x