Bootstrap

spring-关于Bean的循环依赖

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

;