Spring學習筆記 Bean的生命週期

2021-07-10 06:01:59 字數 1122 閱讀 8498

下面以beanfactory為例,說明乙個bean的生命週期活動:

由beanfactory讀取bean定義檔案,並生成各個例項。

執行bean的屬性依賴注入。

如果bean類實現了org.springframework.beans.factory.beannameaware介面,則執行其setbeanname()方法。

如果bean類實現了org.springframework.beans.factory.beanfactoryaware介面,則執行其setbeanfactory()方法。

容器中如果有實現org.springframework.beans.factory.beanpostprocessors介面的例項,則任何bean在初始化之前都會執行這個例項的processbeforeinitialization()方法。

如果bean類實現了org.springframework.beans.factory.initializingbean介面,則執行其afterpropertiesset()方法。

在bean定義檔案中使用「init-method」屬性設定方法名稱,如下:

.......

這時會執行initmethod()方法,注意,這個方法是不帶引數的。

容器中如果有實現org.springframework.beans.factory.beanpostprocessors介面的例項,則任何bean在初始化之前都會執行這個例項的processafterinitialization()方法。

在容器關閉時,如果bean類實現了org.springframework.beans.factory.disposablebean介面,則執行它的destroy()方法。

在容器關閉時,可以在bean定義檔案中使用「destory-method」定義的方法

.......

這時會執行destroymethod()方法,注意,這個方法是不帶引數的。

以上就是beanfactory維護的乙個bean的生命週期。下面這個圖可能更直觀一些:

beanpostprocessors的processbeforeinitialization()

Spring 學習筆記 (三) Bean

配置 例項化 裝配 注入不同資料型別 基於annotation 定義 bean 標註在實現類上 bean 元件裝配 標註在屬性變數,屬性的 setter 方法,構造方法上 載入註解定義的 bean 區別見 difference between contextannotation config and...

學習筆記 Spring的Bean的裝配

spring中裝配bean的方式有兩種,一種是通過配置檔案來進行裝配,另外一種是通過註解的方式來進行裝配。但是在實際的開發中並不是簡單的通過一種方式來完成的,而是通過這兩種的混搭的方式來完成的。首先應該講所需要的jar新增到專案中 一 通過配置檔案的方式來對bean進行裝配 配置檔案中引入的資訊 配...

spring學習筆記(一) bean的裝配

id,class,scope,construtor arguments,properties,autowiring mode,lazy init 是否懶載入 abstract 是否是抽象的不需要例項化 init method,destroy method autowiring mode 自動裝配模式...