Spring bean的生命週期

2021-10-10 21:42:24 字數 766 閱讀 4351

spring bean的生命週期從整體上看只有4個:

例項化 -> 屬性賦值 -> 初始化 -> 銷毀

第一大類:影響多個bean的介面:

postprocessbeforeinstantiation在docreatebean之前呼叫,也就是在bean例項化之前呼叫的,英文原始碼注釋解釋道該方法的返回值會替換原本的bean作為**,這也是aop等功能實現的關鍵點。

第二大類:只呼叫一次的介面

又可以分兩大類

aware型別的介面

生命週期介面

aware型別的介面的作用就是讓我們能夠拿到spring容器中的一些資源。基本都能夠見名知意,aware之前的名字就是可以拿到什麼資源,例如beannameaware可以拿到beanname,以此類推。呼叫時機需要注意:所有的aware方法都是在初始化階段之前呼叫的!

至於剩下的兩個生命週期介面就很簡單了,例項化和屬性賦值都是spring幫助我們做的,能夠自己實現的有初始化initializingbean 和銷毀disposablebean兩個生命週期階段。

完整順序圖:

時序圖:

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