Spring中Bean的生命週期是怎樣的

2021-09-10 22:16:15 字數 971 閱讀 9368

1.spring對bean進行例項化(相當於程式中的new xx())

2.spring將值和bean的引用注入進bean對應的屬性中

3.如果bean實現了beannameaware介面,spring將bean的id傳遞給setbeanname()方法

(實現beannameaware清主要是為了通過bean的引用來獲得bean的id,一般業務中是很少有用到bean的id的)

4.如果bean實現了beanfactoryaware介面,spring將呼叫setbeandactory(beanfactory bf)方法並把beanfactory容器例項作為引數傳入。

(實現beanfactoryaware 主要目的是為了獲取spring容器,如bean通過spring容器發布事件等)

6.如果bean實現了beanpostprocess介面,spring將呼叫它們的postprocessbeforeinitialization(預初始化)方法

(作用是在bean例項建立成功後對進行增強處理,如對bean進行修改,增加某個功能)

7.如果bean實現了initializingbean介面,spring將呼叫它們的afterpropertiesset方法,作用與在配置檔案中對bean使用init-method宣告初始化的作用一樣,都是在bean的全部屬性設定成功後執行的初始化方法。

8.如果bean實現了beanpostprocess介面,spring將呼叫它們的postprocessafterinitialization(後初始化)方法

(作用與6的一樣,只不過6是在bean初始化前執行的,而這個是在bean初始化後執行的,時機不同 )

9.經過以上的工作後,bean將一直駐留在應用上下文中給應用使用,直到應用上下文被銷毀

10.如果bean實現了dispostblebean介面,spring將呼叫它的destory方法,作用與在配置檔案中對bean使用destory-method屬性的作用一樣,都是在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引用它...

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

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