![](/img/trans.png)
[英]How does @Lazy and proxy bean affect Circular Dependencies in Spring?
[英]Circular dependencies due to @Lazy self reference. Any workaround for Spring 2.6?
我们通过构造函数注入@Lazy
对 self 类型的引用来使用循环依赖,这样我们就可以使用带有@Transactional
和其他注释的本地方法。
现在我们正在尝试更新到默认情况下禁止循环引用的 Spring Boot 2.6。
有没有比@Lazy
自引用更好的方法来调用本地方法并获得@Transactional
和其他注释?
您可以使用@Resource
注解进行自我注入
class MyClass {
@Resource
private MyClass self;
}
从 4.3 开始,@Autowired 还考虑注入的自引用(即,引用回当前注入的 bean)。 请注意,自注入是一种后备。 对其他组件的常规依赖始终具有优先权。 从这个意义上说,自我参考不参与常规的候选人选择,因此尤其不是主要的。 相反,它们总是以最低优先级结束。 在实践中,您应该仅将自引用用作最后的手段(例如,通过 bean 的事务代理在同一实例上调用其他方法)。 在这种情况下,考虑将受影响的方法分解为单独的委托 bean。 或者,您可以使用@Resource,它可以通过其唯一名称获取返回到当前 bean 的代理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.