Spring中Bean的生命週期

2021-09-23 07:49:49 字數 1102 閱讀 1041

去一些企業面試時,經常會被問到spring的問題,有一次就被問到關於spring中bean的生命週期是怎樣的?其實這也是在業務中經常會遇到的,但容易遺忘,所以專門總結一下以備不時之需。ps:可以借鑑servlet的生命週期,例項化、初始init、接收請求service、銷毀destroy。

spring上下文中的bean也類似,【spring上下文的生命週期】

1. 例項化乙個bean,也就是我們通常說的new

2. 按照spring上下文對例項化的bean進行配置,也就是ioc注入

3. 如果這個bean實現了beannameaware介面,會呼叫它實現的setbeanname(string beanid)方法,此處傳遞的是spring配置檔案中bean的id

4. 如果這個bean實現了beanfactoryaware介面,會呼叫它實現的setbeanfactory(),傳遞的是spring工廠本身(可以用這個方法獲取到其他bean)

6. 如果這個bean關聯了beanpostprocessor介面,將會呼叫postprocessbeforeinitialization(object obj, string s)方法,beanpostprocessor經常被用作是bean內容的更改,並且由於這個是在bean初始化結束時呼叫after方法,也可用於記憶體或快取技術

7. 如果這個bean在spring配置檔案中配置了init-method屬性會自動呼叫其配置的初始化方法

8. 如果這個bean關聯了beanpostprocessor介面,將會呼叫postafterinitialization(object obj, string s)方法

9. 當bean不再需要時,會經過清理階段,如果bean實現了disposablebean介面,會呼叫其實現的destroy方法

10. 最後,如果這個bean的spring配置中配置了destroy-method屬性,會自動呼叫其配置的銷毀方法

以上10步驟可以作為面試或者筆試的模板,另外我們這裡描述的是應用spring上下文bean的生命週期,如果應用spring的工廠也就是beanfactory的話去掉第5步就ok了

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後置處理器允...