首页 > 解决方案 > Spring boot 应用上下文中一些bean的依赖形成了一个循环:

问题描述

我的注入周期有问题,我尝试使用注释 @Lazy 和 @Setter 但仍然无法正常工作。例如

@Service
@RequiredArgsConstructor
class A{
     private final B b;
}
@Service
@RequiredArgsConstructor
class B{
     private final A a;
}

我在最终变量中添加了@Lazy 注释,但它不起作用。我在最终变量中添加了@Setter 注释,但它不起作用。我不知道为什么

标签: javaspring-boot

解决方案


我们不能为最终字段设置任何设置器,因为最终变量绑定通过引导程序发生一次。@Lazy 应该使用构造函数参数声明,例如:

   class B{
     B(@Lazy private final A a){
     this.a = a;
   }
     private final A a;
   }

推荐阅读