电竞比分网-中国电竞赛事及体育赛事平台

分享

為什么阿里那么難進(jìn),原來精髓在這

 泰榮林黑皮 2020-07-14

最近很多水友在后臺留言問關(guān)于Spring的循環(huán)依賴問題,這也是最近兩年新出的面試頻度較高的面試題!

下面我們就通過這篇文章讓大家了解循環(huán)依賴的問題

什么是循環(huán)依賴?

循環(huán)依賴其實(shí)是指兩個及以上bean相互持有對方,最終形成閉環(huán)的過程(一般聊循環(huán)依賴都是默認(rèn)的單例bean),簡單說就是A依賴B,B依賴C,C又依賴A。

其實(shí)在Spring中,有兩種循環(huán)依賴的場景...

  • 第一種:構(gòu)造器的循環(huán)依賴

  • 第二種:setter的依賴注入


第一種是沒有辦法解決的,而第二種可以使用提前暴露對象的方式進(jìn)行解決


那么肯定有很多小伙伴會有疑問,為什么?

其實(shí)想搞明白這個問題,需要對Spring的Bean的生命周期有一個完整的了解,如下圖:

大家可能對這個圖不太熟悉,但是我要強(qiáng)調(diào)的是,圖中我已經(jīng)用三種顏色標(biāo)識了,除了使用這部分之外,可以分為實(shí)例化和初始化,這也是解決問題的核心。

同時,Spring中還使用了三級緩存來解決問題:


上圖就是Spring中的三級緩存,那么問題來了

  • Spring是如何通過三級緩存來解決問題的?

  • 一級緩存能不能解決?為什么?

  • 二級緩存能不能解決?為什么?

  • 為什么非要使用三級緩存?使用三級緩存是為了解決什么問題?

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多