下面以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 自動裝配模式...