美文网首页
Spring IOC和BEAN循环依赖

Spring IOC和BEAN循环依赖

作者: MaTae | 来源:发表于2020-03-13 15:17 被阅读0次

循环依赖:循环依赖就是循环引用,就是两个或多个bean相互之间持有对方,比如A引用B,B引用C,C引用A,则它们最终反映为一个环。初始化时就会循环。

解决循环依赖:先创建所有对象,再赋值。

Spring中有三种循环依赖:1、构造器注入构成的循环依赖,是无法解决的,只能抛出BeanCurrentlyInCreationException异常表示循环依赖。2、通过setter注入方式构成的循环依赖。是通过Spring容器提前暴露刚初始化完但未完成其他步骤(如setter注入)的bean来完成。3、对于"prototype"作用域bean,Spring容器无法完成依赖注入。

spring解决setter注入的循环依赖:在bean还没完全创建时,提前暴露ObjectFcatory,ObjectFactory能够获取bean。earlySingletonObjects缓存从ObjectFactory中获取的bean。

参考文章:https://www.jianshu.com/p/16287a26be25

相关文章

网友评论

      本文标题:Spring IOC和BEAN循环依赖

      本文链接:https://www.haomeiwen.com/subject/vzekshtx.html