spring中bean的生命週期

2022-08-02 02:30:12 字數 1248 閱讀 1528

關於spring中bean的生命週期管理請參照下圖所示:

乙個bean在spring中要經歷如下生命過程:

(1)bean的建立

容器尋找bean的定義資訊並將其實例化;

(2)屬性注入

使用依賴注入,spring按照bean的定義資訊配置bean的所有屬性;

(3)beannameaware的setbeanname()

如果bean實現了beannameaware介面,工廠呼叫bean的setbeanname傳遞bean的id;

(4)beanfactoryaware的setbeanfactory()

如果bean實現了beanfactoryaware介面,工廠呼叫bean的setbeanfactory傳遞自身;

(5)beanpostprocessors的processbeforeinitialization()

如果beanpostprocessors和bean關聯,那麼其postprocessbeforeinitialization()方法將被呼叫;

(6)initializingbean的afterpropertiesset()

如果bean實現了initializingbean介面,那麼其afterpropertiesset()方法將被呼叫;

(7)bean自己定義的init-method

如果bean的定義資訊中定義了init-method方法,那麼會執行bean自己的初始化方法;

(8)beanpostprocessors的processaafterinitialization()

如果有beanpostprocessors和bean關聯,那麼其processaafterinitialization()方法將被呼叫;

到此時,bean就可以被應用系統使用了,並被儲存在beanfactory中直到它不再被使用。

有兩種方式可以把bean從beanfactory中刪除:

a. 如果bean實現了disposablebean介面,destory()方法被呼叫。

b. 如果bean定義了destroy-method方法,則呼叫該方法。

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引用它...

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

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