现象:系统中存在Aservice调用Bservice,Bservice调用Cservice,Cservice调用Bservice。系统中service之间存在相互调用,就导致service循环依赖注入。
    循环依赖注入是什么:循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图:
    sping-循环依赖注入 - 图1
    注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。
    解决办法:采用@Lazy懒加载,在使用的时候再去实例化bean,如下所示:

    1. @Autowired
    2. @Lazy
    3. private CfOrderToBatchService cfOrderToBatchService;

    PS:解决办法有很多种,目前我们项目是采用这种方式完美解决循环依赖注入,仅供大家参考。
    参考网址: https://blog.csdn.net/u010853261/article/details/77940767