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.通過構造器或...