(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的生命週期
一 bean的定義 spring通常通過配置檔案定義bean。如 xmlns xsi xsi schemalocation spring beans 2.0.xsd helloworld 這個配置檔案就定義了乙個標識為 helloworld 的bean。在乙個配置文件中可以定義多個bean。二 be...
Spring框架 Bean的種類
1 普通bean spring直接建立a例項,並返回。2 factorybean 是乙個特殊的bean,具有工廠生成物件能力,只能生成特定的物件。bean必須使用factorybean介面,此介面提供方法getobject 用於獲得特定bean。先建立fb例項,呼叫getobject 方法,並返回方...
Spring框架中Bean的生命週期
spring ioc容器找到關於bean的定義並例項化該bean。spring ioc容器對bean進行依賴注入。如果bean實現了beannameaware介面,則將該bean的id傳給setbeanname方法。如果bean實現了beanfactoryaware介面,則將beanfactory物...