spring bean生命週期

2021-08-15 13:30:00 字數 1115 閱讀 4685

defaultlistablebeanfactory bean工廠類

1 dogetbean

2 transformedbeanname 獲取beanname(過濾&和別名替換)

3getsingleton 從單例快取中獲取例項 這裡涉及到迴圈依賴問題

4getparentbeanfactory 獲取父bean工廠類 這裡將name還原

5 markbeanascreated 標記當前bean正在建立->

6 getmergedlocalbeandefinition 合併轉換為rootbeandefinition

7getdependson 獲取依賴,記錄依賴關係 初始化依賴bean 即depend-on 配置10getobjectforbeaninstance 判斷是否為objectfactory並且執行器getobject獲取物件(對應9 單例會建立objectfactory【對於介面內實現方法非常的多並且沒有任何規律可言,可以考慮new 乙個介面類】),如果不是 則直接返回原有例項

擴充套件點:beanpostprocessor 可對例項進行包裝,比如裝飾類、**類等等

9.2中,出現instantiationawarebeanpostprocessor型別,第一次進行包裝,不過必須得是該型別,它擴充套件了三個方法,分別在例項化之前、例項化之後依賴注入之前、依賴解析之後而注入之前執行

9.4mergedbeandefinitionpostprocessor

bean例項化之後馬上執行

9.6smartinstantiationawarebeanpostprocessor解決依賴問題

9.7instantiationawarebeanpostprocessor這裡呼叫 的是postprocessafterinstantiation

9.7instantiationawarebeanpostprocessor這裡呼叫 的是postprocesspropertyvalues

Spring Bean生命週期

1.容器尋找bean的定義資訊並且將其實例化。2.受用依賴注入,spring按照bean定義資訊配置bean的所有屬性。3.如果bean實現了beannameaware介面,工廠呼叫bean的setbeanname 方法傳遞bean的id。4.如果bean實現了beanfactoryaware介面,...

spring bean生命週期

生命週期 定義,初始化,使用,銷毀 一.初始化 方法1.實現org.springframework.beans.foctory.initializingbean介面,覆蓋afterpropertiesset方法。系統會自動查詢afterpropertiesset方法,執行其中的初始化操作 方法2.配...

Springbean生命週期

springbean的完整生命週期大致如下 1 首先例項化 beanfactorypostprocessor的實現類,執行它的postprocessorbeanfactory方法 2 例項化beanpostprocessor 的實現類 3 例項化 instantiationawarebeanpost...