大家如果有开发上问题可以私信我,我会发布解决文章在里面。
循环依赖
当出现这样的报错信息,说明我们的项目出现了循环依赖。
***************************
APPLICATION FAILED TO START
***************************
Description:
The dependencies of some of the beans in the container form a cycle:
┌─────┐
| serviceA defined in file [com/example/ServiceA.class]
↑ ↓
| serviceB defined in file [com/example/ServiceB.class]
└─────┘
Action:
Relying upon circular references is discouraged and they are prohibited by default.
Update your application to remove the dependency cycle between beans.
As a last resort, it may be possible to break the cycle automatically by
setting spring.main.allow-circular-references to true.
实际举例
我们有class a , class b, class c.
import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Autowired;
@Component
public class ClassA {
@Autowired // 构造器注入
private ClassB b;
}
@Component
public class ClassB {
@Autowired // 构造器注入
private ClassC c;
}
@Component
public class ClassC {
@Autowired // 构造器注入
private ClassC c;
}
这三类相互依赖,让我们的程序报错。解决方法如下。
彻底搞懂Java后端循环依赖:Spring解决原理+实战避坑指南(面试高频)-CSDN博客