beanpostprocessor呼叫postprocessbeforeinitialzation:當前正在初始化的bean物件會被傳遞進來,這個函式會先於initialzationbean執行,因為稱為前置處理。
5.initializingbean.afterpropertiesset():這一階段也可以在bean正式構造完成前增加我們自定義的邏輯,但它與前置處理不同,由於該函式並不會把當前bean物件傳進來,因此在這一步沒辦法處理物件本身,只能增加一些額外的邏輯。若要使用它,我們需要讓bean 實現該介面,並把要增加的邏輯寫在該函式中,然後spring會在前置處理完成後檢測當前bean是否實現了該介面,並執行afterpropertiesset函式。
6.init-method:spring為了降低對客戶**的侵入性,給bean 的配置提供了init-method屬性,該屬性指定了在這一階段需要執行的函式名,spring便會在初始化階段執行我們設定的函式。init-method本質上仍然使用了initializingbean介面。
beanpostprocessor 呼叫postprocessafterinitialzation: 當前正在初始化的bean物件會被傳遞進來,我們就可以對這個bean 作任何處理。這個函式會在initialzationbean完成後執行,因此稱為後置處理。
8.dispsablebean和destroy-method:和init-method 一樣,通過給destroy-method指定函式,就可以在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...