Spring例項化時各種初始化方法執行順序

2021-08-23 14:31:14 字數 596 閱讀 7748

帶序號的步驟來自spring實戰(第4版),紅字為補充部分。

1.spring對bean進行例項化;

constructor構造方法

@postconstruct,不是spring的一部分,來自rt.jar的註解。

7.如果bean實現了initializingbean介面,spring將呼叫它們的after-propertiesset()方法。類似地,如果bean使用initmethod宣告了初始化方法,該方法也會被呼叫;

8.如果bean實現了beanpostprocessor介面,spring將呼叫它們的post-processafterinitialization()方法;

9.此時,bean已經準備就緒,可以被應用程式使用了,它們將一直駐留在應用上下文中,直到該應用上下文被銷毀;

10.如果bean實現了disposablebean介面,spring將呼叫它的destroy()介面方法。同樣,如果bean使用destroy-method宣告了銷毀方法,該方法也會被呼叫。

另外,單例模式下實現beanpostprocessor介面的bean不呼叫實現方法;實現該介面的類也不會呼叫實現方法,並且spring會先初始化該類。

參考:

C 基礎 例項化時,初始化字段

using system namespace class program console.writeline e.num,e.name console.readkey 1,csharper感恩曾經幫助過 心少樸 的人。c 優秀,值得學習。net core具有跨平台的能力,值得關注。console,w...

靜態初始化和例項初始化

父類單獨的效果 當父類單獨執行時,靜態初始化塊優先執行,然後是例項初始化塊,最後才是構造器 子類單獨效果 首先執行父類的靜態初始化塊和子類的初始化塊 優先執行靜態 然後執行父類的例項初始化塊和構造器,最後執行子類的例項初始化塊和構造器 父類子類效果1 父在前子在後 先將父類的物件例項出來後,進行子類...

類初始化和例項初始化

乙個類要建立例項需要先載入並初始化該類 main方法所在的類需要先載入和初始化 乙個子類要初始化需要先初始化父類 乙個類初始化就是執行clinit 方法 clinit 方法由靜態類變數顯式賦值 和靜態 塊組成 類變數顯式賦值 和靜態 塊 從上到下順序執行 clinit 方法只執行一次 父類的初始化 ...