Sping框架中Bean的生命週期

2021-10-07 19:06:54 字數 1118 閱讀 7912

bean生命週期**

spring框架中bean的生命週期是乙個很重要的知識點,更是乙個面試過程中的高頻問點。

詳解

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

2、按照spring上下文對例項化的bean進行屬性配置--也就是ioc注入;

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

4、如果這個bean已經實現了beanfactoryaware介面,會呼叫它實現的setbeanfactory(setbeanfactory(beanfactory)傳遞的是spring工廠自身(可以用這個方式來獲取其它bean,只需在spring配置檔案中配置乙個普通的bean就可以);

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

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

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

(注意:以上工作完成以後就可以應用這個bean了,那這個bean是乙個singleton的,所以一般情況下我們呼叫同乙個id的bean會是在內容位址相同的例項,當然在spring配置檔案中也可以配置非singleton,這裡我們不做贅述。)

9、當bean不再需要時,會經過清理階段,如果bean實現了disposablebean這個介面,會呼叫那個其實現的destroy()方法;

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

Spring框架中Bean的生命週期

spring ioc容器找到關於bean的定義並例項化該bean。spring ioc容器對bean進行依賴注入。如果bean實現了beannameaware介面,則將該bean的id傳給setbeanname方法。如果bean實現了beanfactoryaware介面,則將beanfactory物...

Spring框架中bean的生命週期

1 spring容器從xml檔案中讀取bean的定義,並例項化bean。2 spring根據bean的定義填充所有的屬性。3 如果bean實現了beannameaware介面,spring傳遞bean的id到setbeanname方法。4 如果bean實現了beanfactoryaware介面,sp...

Spring框架中bean的生命週期

spring容器 從xml 檔案中讀取bean的定義,並例項化bean。spring根據bean的定義填充所有的屬性。如果bean實現了beannameaware 介面,spring 傳遞bean 的id 到 setbeanname方法。如果bean 實現了 beanfactoryaware 介面,...