從實(shí)際例子淺析spring bean的生命周期

最近工作中,要在項(xiàng)目里配置sftp的連接池,然后遇到了一些問(wèn)題,在解決問(wèn)題的過(guò)程中,對(duì)spring bean的生命周期的有了進(jìn)一步的實(shí)證和理解??聪逻@段代碼:


image.png

這個(gè)類是一個(gè)加了@Configuration的配置類,作為一個(gè)component,spring容器會(huì)在啟動(dòng)的時(shí)候加載并且對(duì)這個(gè)類進(jìn)行實(shí)例化->屬性賦值->初始化。
首先進(jìn)行實(shí)例化,我們看到斷點(diǎn)走到了這個(gè)類的構(gòu)造方法中。然而對(duì)于maxTotal這個(gè)成員變量,我們通過(guò)@Value注解,把100注值給了它,但構(gòu)造方法中卻沒(méi)有拿到這個(gè)值,依然為0。
那么原因就是spring容器最先做的是對(duì)這個(gè)類進(jìn)行實(shí)例化,這個(gè)時(shí)候?qū)傩再x值還沒(méi)有開(kāi)始,所以我們通過(guò)@Value,@Autowired注入的屬性值都是得不到的。

解決方法

再看下面這段代碼


image.png

當(dāng)我們把這些屬性值作為構(gòu)造器參數(shù)時(shí),spring容器就會(huì)在類實(shí)例化時(shí),優(yōu)先獲取這些值。

理論來(lái)自實(shí)踐,并高于實(shí)踐。如有不足,請(qǐng)批評(píng)指正。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 只有四個(gè)! 是的,Spring Bean的生命周期只有這四個(gè)階段。把這四個(gè)階段和每個(gè)階段對(duì)應(yīng)的擴(kuò)展點(diǎn)糅合在一起雖然...
    EllisonPei閱讀 369評(píng)論 0 0
  • Spring Bean的生命周期是Spring面試熱點(diǎn)問(wèn)題。這個(gè)問(wèn)題即考察對(duì)Spring的微觀了解,又考察對(duì)Spr...
    1234哦哦閱讀 1,044評(píng)論 0 8
  • 在Spring中,那些組成應(yīng)用程序的主體及由Spring IoC容器所管理的對(duì)象,被稱之為bean。簡(jiǎn)單地講,be...
    雷爺_fefc閱讀 694評(píng)論 0 2
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,855評(píng)論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能。 ...
    yichen大刀閱讀 8,118評(píng)論 0 4

友情鏈接更多精彩內(nèi)容