Spring的bean的生命週期

2021-07-24 17:57:02 字數 1997 閱讀 3676

bean的生命週期:定義,初始化,使用,銷毀。

這裡僅以下面的兩種方式來說明bean的生命週期:

1,呼叫bean的建構函式(或者工廠方法)例項化bean.

2,對bean的成員變數賦值.

3,如果bean實現了initializingbean,呼叫bean的afterpropertiesset方法.

4,如果bean配置了init-method方法,呼叫init-method配置的bean方法.

5,bean處於可以使用的狀態.

6,spring容器關閉.

7,如果bean實現了disposablebean,呼叫bean的destroy方法.

8,如果bean配置了destroy-method方法,呼叫destroy-method配置的bean的方法.

bean自身的方法:配置檔案中的init-method和destroy-method配置的方法、bean物件自己呼叫的方法

bean級生命週期介面方法:beannameaware、beanfactoryaware、initializingbean、diposablebean等介面中的方法

容器級生命週期介面方法:instantiationawarebeanpostprocessor、beanpostprocessor等後置處理器實現類中重寫的方法

簡單的bean的生命週期:

1.實現org.springframework.beans.factory.initializingbean介面,覆蓋afterpropertiesset方法

2.配置init-method

1.實現org.springframework.beans.factory.disposablebean介面覆蓋destroy方法

2.配置destroy-method

配置:

ac.getbean("person");

初始化 銷毀

在啟動ioc容器,載入bean,同時呼叫init-method的方法,關閉ioc容器,同時呼叫destory-method的方法。

配置:

ac.getbean("person");

initializingbean的初始化

disposablebean的銷毀

配置:

default-init-method="defaultinit" default-destroy-method="defaultdestory">

ac.getbean("person");

defaultdestory初始化

defaultdestory銷毀

initializingbean的初始化

初始化 銷毀

disposablebean的銷毀

注意:當三種方式同時使用時,全域性(預設的)初始化銷毀方法會被覆蓋。

另外實現介面的初始化/銷毀方式會先於配置檔案中的初始化/銷毀方式執行。

即使沒有以上三種初始化方法也是可以編譯執行的

學習筆記

分類型別 所包含方法

bean自身的方法 配置檔案中的init-method和destroy-method配置的方法、bean物件自己呼叫的方法

bean級生命週期介面方法 beannameaware、beanfactoryaware、initializingbean、diposablebean等介面中的方法

容器級生命週期介面方法 instantiationawarebeanpostprocessor、beanpostprocessor等後置處理器實現類中重寫的方法

Spring學習筆記 關於bean的生命週期

springioc容器可以管理bean的生命週期,spring允許在bean宣告週期的特定點執行定製的任務。springioc容器對bean的生命週期進行管理的過程 在bean的宣告裡設定init method和destory method屬性,為bean指定初始化和銷毀的方法。bean後置處理器允...

Spring框架中的Bean物件的生命週期

從書上可知,spring框架中bean物件有它的生命週期,還包括bean的銷毀。在beanfacotory中獲取的例項是singleton,beanfactory預設每乙個引用來維護乙個例項,對單執行程式來講,並不會有什麼問題,但是多程式來說,就需要你注意執行的安全,可以設定每次在beanfacot...

Spring中Bean的作用域 狀態 生命週期

spring 3中為bean定義了5中作用域,分別為singleton 單例 prototype 原型 request session和global session,5種作用域說明如下 singleton 單例模式,spring ioc容器中只會存在乙個共享的bean例項,無論有多少個bean引用它...