最近很多水友在后臺(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)景...
第一種是沒(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)了
|
|