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 介面,...