spring bean的生命週期

2021-10-08 15:46:48 字數 991 閱讀 2010

首先說一下servlet的生命週期:例項化,初始init,接收請求service,銷毀destroy;

spring上下文中的bean生命週期也類似,如下:

(1)例項化bean:

(2)設定物件屬性(依賴注入):

(3)處理aware介面:

①如果這個bean已經實現了beannameaware介面,會呼叫它實現的setbeanname(string beanid)方法,此處傳遞的就是spring配置檔案中bean的id值;

②如果這個bean已經實現了beanfactoryaware介面,會呼叫它實現的setbeanfactory()方法,傳遞的是spring工廠自身。

(4)beanpostprocessor:

如果想對bean進行一些自定義的處理,那麼可以讓bean實現了beanpostprocessor介面,那將會呼叫postprocessbeforeinitialization(object obj, string s)方法。

(5)initializingbean 與 init-method:

如果bean在spring配置檔案中配置了 init-method 屬性,則會自動呼叫其配置的初始化方法。

(6)如果這個bean實現了beanpostprocessor介面,將會呼叫postprocessafterinitialization(object obj, string s)方法;由於這個方法是在bean初始化結束時呼叫的,所以可以被應用於記憶體或快取技術;

以上幾個步驟完成後,bean就已經被正確建立了,之後就可以使用這個bean了。

(7)disposablebean:

當bean不再需要時,會經過清理階段,如果bean實現了disposablebean這個介面,會呼叫其實現的destroy()方法;

(8)destroy-method:

最後,如果這個bean的spring配置中配置了destroy-method屬性,會自動呼叫其配置的銷毀方法。

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...