1. 例項化乙個bean,也就是我們通常說的new
2. 按照spring上下文對例項化的bean進行配置,也就是ioc注入
3. 如果這個bean實現了beannameaware介面,會呼叫它實現的setbeanname(string beanid)方法,此處傳遞的是spring配置檔案中bean的id
4. 如果這個bean實現了beanfactoryaware介面,會呼叫它實現的setbeanfactory(),傳遞的是spring工廠本身(可以用這個方法獲取到其他bean)
6. 如果這個bean關聯了beanpostprocessor介面,將會呼叫postprocessbeforeinitialization(object obj, string s)方法,beanpostprocessor經常被用作是bean內容的更改,並且由於這個是在bean初始化結束時呼叫after方法,也可用於記憶體或快取技術
7. 如果這個bean在spring配置檔案中配置了init-method屬性會自動呼叫其配置的初始化方法
8. 如果這個bean關聯了beanpostprocessor介面,將會呼叫postafterinitialization(object obj, string s)方法
以上工作完成以後就可以用這個bean了,那這個bean是乙個single的,所以一般情況下我們呼叫同乙個id的bean會是在內容位址相同的例項
9. 當bean不再需要時,會經過清理階段,如果bean實現了disposablebean介面,會呼叫其實現的destroy方法
10. 最後,如果這個bean的spring配置中配置了destroy-method屬性,會自動呼叫其配置的銷毀方法
注:這裡描述的是spring應用上下文bean的生命週期,如果是spring的beanfactory的話去掉第5步就行了
1. beanfactory:是ioc容器的核心介面, 它定義了ioc的基本功能,我們看到它主要定義了getbean方法。getbean方法是ioc容器獲取bean物件和引發依賴注入的起點。方法的功能是返回特定的名稱的bean。
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...