最近很多水友在后臺留言問關于Spring的循環(huán)依賴問題,這也是最近兩年新出的面試頻度較高的面試題! 下面我們就通過這篇文章讓大家了解循環(huán)依賴的問題 什么是循環(huán)依賴? 循環(huán)依賴其實是指兩個及以上bean相互持有對方,最終形成閉環(huán)的過程(一般聊循環(huán)依賴都是默認的單例bean),簡單說就是A依賴B,B依賴C,C又依賴A。 其實在Spring中,有兩種循環(huán)依賴的場景...
第一種是沒有辦法解決的,而第二種可以使用提前暴露對象的方式進行解決 那么肯定有很多小伙伴會有疑問,為什么? 其實想搞明白這個問題,需要對Spring的Bean的生命周期有一個完整的了解,如下圖: 大家可能對這個圖不太熟悉,但是我要強調(diào)的是,圖中我已經(jīng)用三種顏色標識了,除了使用這部分之外,可以分為實例化和初始化,這也是解決問題的核心。 同時,Spring中還使用了三級緩存來解決問題: 上圖就是Spring中的三級緩存,那么問題來了
|
|