什么是循环依赖
先看个demo
@Data public class A{ private B b; } @Data public class B{ private A a; }
由此导致无限循环
如何解决
首先搞懂一个概念,解决循环依赖并不是靠我们,spring会帮我们解决
但是!!!记住一点,很重要
spring只能通过提前暴露bean来解决setter注入的循环依赖,构造器注入的循环依赖无法解决(Spring实例化一个bean的时候,是分两步进行的,首先实例化目标bean,然后为其注入属性。)
不过话说回来,如果出现循环依赖,一般都是设计上的问题,但凡正经点的项目都不会出现这种问题,如果出现了,不用方,我们能做的就是把构造器创建bean改成setter,剩下的交给spring;