1. 程式人生 > 其它 >sping-迴圈依賴注入

sping-迴圈依賴注入

技術標籤:java專案bug

現象:系統中存在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