sping-循环依赖注入

现象:系统中存在Aservice调用Bservice,Bservice调用Cservice,Cservice调用Bservice。系统中service之间存在相互调用,就导致service循环依赖注入。

循环依赖注入是什么:循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图:

image

注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。

解决办法:采用@Lazy懒加载,在使用的时候再去实例化bean,如下所示:

 @Autowired
    @Lazy
    private CfOrderToBatchService cfOrderToBatchService;

PS:解决办法有很多种,目前我们项目是采用这种方式完美解决循环依赖注入,仅供大家参考。

参考网址: https://blog.csdn.net/u010853261/article/details/77940767

猜你喜欢

转载自blog.csdn.net/xingxingmingyue/article/details/111870861
今日推荐