解决Spring注入bean循环依赖异常
什么是循环依赖
:
当Spring上下文加载所有bean时,它会尝试按照它们完全工作所需的顺序创建bean。例如,如果我们没有循环依赖,如下例所示:
豆A→豆B→豆C.
Spring将创建bean C,然后创建bean B(并将bean注入其中),然后创建bean A(并将bean B注入其中)。
但是,当具有循环依赖时,Spring无法决定应该首先创建哪个bean,因为它们彼此依赖。在这些情况下,Spring将在加载上下文时引发BeanCurrentlyInCreationException。
使用构造函数注入时,它可能发生在Spring中;
如果您使用其他类型的注入,则不应该发现此问题,因为依赖项将在需要时注入,而不是在上下文加载时注入。
解决方式
: 根据异常信息在声明的类上加入@Lazy注解,具有延迟加载作用
***山川日月可爱俗常 ***