spring如何解決循環(huán)依賴 循環(huán)依賴解決辦法?
循環(huán)依賴解決辦法?如果問的是spring的循環(huán)依賴,bean生成用屬性注入的單例模式,就能支持循環(huán)依賴,因?yàn)閟pring創(chuàng)建bean的模式,單例如果屬性注入會(huì)緩存當(dāng)前構(gòu)建的bean再去創(chuàng)建屬性bean
循環(huán)依賴解決辦法?
如果問的是spring的循環(huán)依賴,bean生成用屬性注入的單例模式,就能支持循環(huán)依賴,因?yàn)閟pring創(chuàng)建bean的模式,單例如果屬性注入會(huì)緩存當(dāng)前構(gòu)建的bean再去創(chuàng)建屬性bean,屬性bean創(chuàng)建時(shí)把之前緩存的bean填充進(jìn)來完成bean的構(gòu)建
Spring如何解決循環(huán)依賴的問題?
Spring是通過先創(chuàng)建對(duì)象,將對(duì)象放在緩存中,再進(jìn)行屬性設(shè)置的。比如A,B互相依賴,先創(chuàng)建A對(duì)象,放在緩存中,設(shè)置屬性時(shí)發(fā)現(xiàn)依賴B,這時(shí)候初始化B,設(shè)置B的屬性,發(fā)現(xiàn)依賴A,緩存中有A的引用,雖然還沒有初始化完全。B初始化完成后,A就可以拿到B了。這僅僅是解決set依賴,如果是構(gòu)造器依賴就解決不了了。
隨便說一句,一般架構(gòu)設(shè)計(jì)的時(shí)候都是上層調(diào)下層,同層和下層調(diào)上層都不應(yīng)該出現(xiàn),可以考慮下設(shè)計(jì)是不是有問題。
希望對(duì)你有幫助,如果有用記得點(diǎn)個(gè)贊哦,也可以關(guān)注一下我,會(huì)分享一些技術(shù)類文章。
如何解決循環(huán)依賴?
1.可設(shè)置優(yōu)先級(jí)。如A的優(yōu)先級(jí)是1,B的優(yōu)先級(jí)是2。那么A的優(yōu)先級(jí)>B的優(yōu)先級(jí)。假如A正在等待B的資源,B也正在等待A的資源,如果不設(shè)置優(yōu)先級(jí),就會(huì)一直相互等待形成死鎖。設(shè)置優(yōu)先級(jí)之后,B就會(huì)退出等待,將資源優(yōu)先分配給A,這樣就解決了循環(huán)依賴的問題。
家里有個(gè)弟弟酒精中毒,天天喝醉試過很多方法,沒效果?
有條件帶他外出旅游半月,讓他沾不到酒。