org.springframework.beans.factory.BeanCurrentlyInCreationException 解决

发布时间 2023-11-27 16:45:28作者: 了悟

BeanCurrentlyInCreationException是BeanCreationException的一个子类,经常在发生在错误的使用构造方法注入bean。 

例如循环依赖的情况

比如再serviceA中注入serviceB。然后又在serviceB中注入serviceA,这样就会造成循环依赖

解决方案1

Spring Boot 应用程序支持 bean 的延迟加载。@Lazy 注解在需要时加载 bean,而不是在开始时加载它。在创建 bean 并将其加载到上下文中后,将注入 bean。首先将创建循环依赖项中的 bean,然后将其他 bean 注入 bean。

 

解决方案2

循环依赖是由于编程或架构的问题。遍历属于循环依赖的 bean,考虑重新设计 bean。这将解决异常。组件必须加载到分层依赖模型而不是循环模型中。为了解决这个异常,应该重新设计 bean 的加载顺序。也就是说考虑把某个需要依赖serviceB的接口直接放到

serviceA中,使其不再需要注入serviceB