什么是循环依赖
【摘要】
什么是循环依赖
先看个demo
@Data
public class A{
private B b;
}
@Data
public class B{
private A a;
}
1234567...
什么是循环依赖
先看个demo
@Data
public class A{
private B b;
}
@Data
public class B{
private A a;
}
当你new了一个A
spring在实例化A的时候发现依赖B
这时候spring就会先去实例化B
然后又发现B依赖了A
spring又去实例化A
。。。。。。
由此导致无限循环
如何解决
首先搞懂一个概念,解决循环依赖并不是靠我们,spring会帮我们解决
但是!!!记住一点,很重要
spring只能通过提前暴露bean来解决setter注入的循环依赖,构造器注入的循环依赖无法解决(Spring实例化一个bean的时候,是分两步进行的,首先实例化目标bean,然后为其注入属性。)
不过话说回来,如果出现循环依赖,一般都是设计上的问题,但凡正经点的项目都不会出现这种问题,如果出现了,不用方,我们能做的就是把构造器创建bean改成setter,剩下的交给spring;
ok我话说完
文章来源: huangjie.blog.csdn.net,作者:负债程序猿,版权归原作者所有,如需转载,请联系作者。
原文链接:huangjie.blog.csdn.net/article/details/112986431
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)