Spring 生命週期

2021-08-27 12:12:52 字數 1409 閱讀 7633

public void refresh() throws bean***ception, illegalstateexception 

catch (bean***ception ex)

} }

1. preparerefresh() 用於設定spring啟動時間並且設定active flag 為true

2. configurablelistablebeanfactory beanfactory = obtainfreshbeanfactory(); 重新整理beanfactory並返回.

3. preparebeanfactory(beanfactory); 為beanfactory注入必要的依賴和配置資訊。

4. postprocessbeanfacotry(beanfactory); 空實現,沒有具體**。(我的spring版本是3.05)

5.invokebeanfactorypostprocessors(beanfactory); 初始化並且呼叫實現了beanfactorypostprocessor介面的類。(諸如propertyplaceholderconfigurer)

6.registerbeanpostprocessors(beanfactory);註冊實現了beanpostprocessor的類。(下面將會用到)

7.initmessagesource(); 

onrefresh();

registerlisteners();

初始化spring容器中的資訊。

8.finishbeanfactoryinitialization(beanfactory);

遍歷spring配置檔案中配置的bean.

1)  找到第乙個配置的bean,進行呼叫預設建構函式進行初始化。   

2)對該bean設定屬性。(配置檔案中配置的property屬性)

3)  

如果該bean實現了beannameaware介面,則呼叫bean的setbeanname方法。

如果該bean實現了beanclassloaderaware介面,則呼叫bean的setbeanclassloader方法。

如果該bean實現了beanfactoryaware介面,則呼叫bean的setbeanfactory方法。

5)如果該bean實現了initializingbean,則會呼叫afterpropertiesset方法。

6)若果該bean在配置檔案中設定了init-method屬性,則會呼叫該屬性指定的方法。

7) 遍歷spring配置檔案中實現beanpostprocessor介面的類(),然後呼叫每乙個beanpostprocessor實現類    的postprocessafterinitialization方法。

8) 繼續第二個bean ...

9.finishrefresh 結束重新整理。

spring 生命週期

spring 生命週期 ioc容器 1 載入配置檔案 2 資源定位 3 資源解析 4 生成beandefinition元資訊 5 通過工廠把beandefinition載入到容器中 初始化bean例項,由spring產生的bean預設是單例的 依賴注入,就是處理的,bean引用bean的問題 ioc...

Spring生命週期

1.容器啟動,例項化所有實現了beanfactorypostprocessor介面的類.它會在任何普通bean例項化之前載入.2.例項化剩下的bean,對這些bean進行依賴注入.3.如果bean有實現beannameaware的介面那麼對這些bean進行呼叫 4.如果bean有實現beanfact...

spring的生命週期

標籤 空格分隔 spring 1.spring ioc 容器可以管理bean的生命週期,spring允許在bean生命週期的特定點執行定製的任務。2.在bean的宣告裡設定init method和destroy method屬性,為bean指定初始化和銷毀方法。整個生命週期的流程為 1.通過構造器或...