監控容器中Bean的生命週期

2021-09-12 01:57:33 字數 815 閱讀 1899

對於prototype作用域的bean,每次客戶端請求spring都會建立乙個新的例項,spring容器僅僅負責建立,建立完之後bean例項完全交給客戶端**來管理,容器不再跟蹤其生命週期。

對於singleton作用域的bean,spring容器知道bean何時例項化結束、何時銷毀和銷毀之前的行為。管理bean的生命週期主要有如下兩個時機:

①注入依賴關係之後

②即將銷毀bean之前

1.依賴關係注入之後的行為:

spring提供兩種方式在bean全部屬性設定成功後執行特定行為:

①使用init-method屬性指定方法。

②實現initializingbean介面。

第一種**汙染小

第二種需要實現介面裡的乙個方法void afterpropertiesset() throws exception; spring容器自動呼叫該方法。

如果兩種方式同時存在,先執行afterpropertiesset方法,再執行init-method屬性指定的方法。

2.bean銷毀之前的行為:

spring也提供兩種方式定製bean例項銷毀之前的特定行為:

①使用destroy-method屬性指定方法。

②實現disposablebean介面。

第一種方式**汙染小。

第二種方式需要實現介面裡的乙個方法void destroy() throws exception;容器自動呼叫該方法。

如果兩種方式同時存在,同樣先執行介面的方法,再執行destroy-method屬性指定的方法。

注意:

Spring容器中Bean的生命週期

例項化 設定屬性值 如果實現了beannameaware介面,呼叫setbeanname設定bean的id或者name 如果實現beanfactoryaware介面,呼叫setbeanfactory 設定beanfactory 呼叫beanpostprocessor的預先初始化方法 呼叫initia...

spring容器中bean的生命週期

1.最近在看 spring實戰第四版 看上面分析到bean在spring容器中的生命週期 2.在bean準備就緒之前,bean工廠執行了一下步驟 spring 對bean進行例項化 spring將值和bean的引用注入到bean對應的屬性中 如果bean實現了beannameaware介面,spri...

spring IOC容器bean生命週期

spring ioc 容器可以管理 bean 的生命週期,spring 允許在 bean 生命週期的特定點執行定製的任務.spring ioc 容器對 bean 的生命週期進行管理的過程 通過構造器或工廠方法建立 bean 例項 為 bean 的屬性設定值和對其他 bean 的引用 bean 可以使...