例項化: 就是我們new
乙個物件的時候
呼叫反射設定屬性的值:使用依賴注入,spring按照bean定義資訊配置bean所有屬性
呼叫 aware 方法: 如果實現了aware 相關的介面,比如org.springframework.beans.beannameaware
,這個介面實現後,spring 可以根據配置檔案的 的 id ,和對應的值,來給物件賦值。相同的還有org.springframework.beans.factory.beanfactoryaware
只不過他返回的是乙個工廠。
如果 bean 實現了org.springframework.beans.factory.config.beanpostprocessors
,那麼會呼叫他的postprocessbeforeinitialization()
方法
如果bean定義檔案中定義init-method,那麼會呼叫bean的initbean()
方法。
同上述步驟4,如果實現了 beanpostprocessors 介面那麼會呼叫postprocessafterinitialization()
方法,到這一步為止,bean 已經建立完畢
當容器關閉的時候 如果實現了disposablebean
方法,會呼叫destroy()
方法。
最後如果配置了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...