我们的应用程序广泛使用Spring Beans,我们随机看到应用程序启动错误,说有Round Bean依赖。但是这个错误并不总是发生,而是在多次重启时随机发生。 这里随机性的原因是什么?如果存在循环依赖性,为什么它不会一直失败/成功?
例外: org.springframework.beans.factory.BeanCurrentlyInCreationException: 创建名为“x”的bean时出错:请求的bean当前位于 创作:是否存在无法解析的循环引用?
答案 0 :(得分:2)
Spring启动初始化bean的过程,并在过程中了解循环引用。根据是使用基于构造函数还是基于成员的自动布线,循环引用可能成功也可能不成功。 如果循环依赖链中涉及的两个类使用Constructor自动装配或成员自动装配,则可能发生以下情况:
因此,如果您具有循环依赖性并且自动装配属于类别(2),则可能会观察到随机/失败的循环依赖关系解析。