想不到,三級(jí)緩存是這樣解決循環(huán)依賴(lài)問(wèn)題的?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
最近很多水友在后臺(tái)留言問(wèn)關(guān)于Spring的循環(huán)依賴(lài)問(wèn)題,這也是最近兩年新出的面試頻度較高的面試題!
下面我們就通過(guò)這篇文章讓大家了解循環(huán)依賴(lài)的問(wèn)題
什么是循環(huán)依賴(lài)?
循環(huán)依賴(lài)其實(shí)是指兩個(gè)及以上bean相互持有對(duì)方,最終形成閉環(huán)的過(guò)程(一般聊循環(huán)依賴(lài)都是默認(rèn)的單例bean),簡(jiǎn)單說(shuō)就是A依賴(lài)B,B依賴(lài)C,C又依賴(lài)A。
其實(shí)在Spring中,有兩種循環(huán)依賴(lài)的場(chǎng)景...
第一種:構(gòu)造器的循環(huán)依賴(lài)
第二種:setter的依賴(lài)注入
第一種是沒(méi)有辦法解決的,而第二種可以使用提前暴露對(duì)象的方式進(jìn)行解決
那么肯定有很多小伙伴會(huì)有疑問(wèn),為什么?
其實(shí)想搞明白這個(gè)問(wèn)題,需要對(duì)Spring的Bean的生命周期有一個(gè)完整的了解,如下圖:
大家可能對(duì)這個(gè)圖不太熟悉,但是我要強(qiáng)調(diào)的是,圖中我已經(jīng)用三種顏色標(biāo)識(shí)了,除了使用這部分之外,可以分為實(shí)例化和初始化,這也是解決問(wèn)題的核心。
同時(shí),Spring中還使用了三級(jí)緩存來(lái)解決問(wèn)題:
上圖就是Spring中的三級(jí)緩存,那么問(wèn)題來(lái)了
Spring是如何通過(guò)三級(jí)緩存來(lái)解決問(wèn)題的?
一級(jí)緩存能不能解決?為什么?
二級(jí)緩存能不能解決?為什么?
為什么非要使用三級(jí)緩存?使用三級(jí)緩存是為了解決什么問(wèn)題?
為了弄懂這個(gè)問(wèn)題,我在微信上跟馬士兵老師聊了很久,恍然大悟!
這里面知識(shí)點(diǎn)很多,以后有機(jī)會(huì)要專(zhuān)門(mén)寫(xiě)一篇,如果你等不及,可以先去參加一下馬老師的《大廠(chǎng)必備Spring》訓(xùn)練營(yíng)
時(shí)間:7月16日-7月17日 兩天,晚20:00開(kāi)始
我為大家申請(qǐng)到了公眾號(hào)專(zhuān)屬福利,這兩天的直播,大家可以免費(fèi)報(bào)名!誠(chéng)意夠不夠?
如何參加?
掃碼加小助手,獲取直播地址
報(bào)名即送架構(gòu)師成長(zhǎng)路線(xiàn)圖
專(zhuān)屬福利,名額有限,先到先得
第一天:
如何利用反射實(shí)現(xiàn)Autowired注解
一招教你如何手撕SpringIOC源碼
Spring程序是如何啟動(dòng)的?
Spring是如何加載配置文件到應(yīng)用程序的?
掌握核心接口BeanDefinitionReader
掌握核心接口BeanFactory
徹底搞懂Spring的refresh方法
BeanPostProcessor接口的作用及實(shí)現(xiàn)
BeanFactoryPostProcessor接口的作用及實(shí)現(xiàn)
第二天:
Spring Bean有沒(méi)有必要實(shí)現(xiàn)Aware接口
Spring Bean的實(shí)例化過(guò)程大揭密
Spring Bean的初始化到底干了什么
徹底理解FactoryBean接口
完美解析Spring Bean的生命周期
Spring的Environment接口有什么作用?
為什么產(chǎn)生循環(huán)依賴(lài)問(wèn)題
循環(huán)依賴(lài)在Spring中是如何解決的
如何巧妙回答Spring IOC面試題
連續(xù)兩天(7月16日-7月17日)每天2小時(shí)(20:00-22:00),免費(fèi)聽(tīng)《大廠(chǎng)必備Spring》,干貨滿(mǎn)滿(mǎn),只能幫到你這里了,快去一起學(xué)習(xí)吧...
現(xiàn)在掃碼立即免費(fèi)報(bào)名
掃碼加小助手,獲取直播地址
報(bào)名即送架構(gòu)師成長(zhǎng)路線(xiàn)圖
專(zhuān)屬福利,名額有限,先到先得
另外準(zhǔn)備一份干貨滿(mǎn)滿(mǎn)的學(xué)習(xí)資料,送給大家,抓緊領(lǐng)取...
如何參加?
掃碼加小助手,獲取直播地址
報(bào)名即送架構(gòu)師成長(zhǎng)路線(xiàn)圖
專(zhuān)屬福利,名額有限,先到先得
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀(guān)點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!