例項化乙個bean,也就是我們通常說的new
按照spring上下文對例項化的bean進行配置,也就是ioc注入
如果這個bean實現了beannameaware介面,會呼叫它實現的setbeanname(string beanid)方法,此處傳遞的是spring配置檔案中bean的id
如果這個bean實現了beanfactoryaware介面,會呼叫它實現的setbeanfactory(),傳遞的是spring工廠本身(可以用這個方法獲取到其他bean)
如果這個bean關聯了beanpostprocessor介面,將會呼叫postprocessbeforeinitialization(object obj, string s)方法,beanpostprocessor經常被用作是bean內容的更改,並且由於這個是在bean初始化結束時呼叫after方法,也可用於記憶體或快取技術
如果這個bean在spring配置檔案中配置了init-method屬性會自動呼叫其配置的初始化方法
如果這個bean關聯了beanpostprocessor介面,將會呼叫postafterinitialization(object obj, string s)方法
注意:以上工作完成以後就可以用這個bean了,那這個bean是乙個single的,所以一般情況下我們呼叫同乙個id的bean會是在內容位址相同的例項
當bean不再需要時,會經過清理階段,如果bean實現了disposablebean介面,會呼叫其實現的destroy方法
最後,如果這個bean的spring配置中配置了destroy-method屬性,會自動呼叫其配置的銷毀方法
spring 中 bean 生命週期
bean生命週期 1 使用預設構造方法或指定構造引數進行bean例項化。2 根據property標籤的配置呼叫bean例項中的相關set方法完成屬性的賦值。3 如果bean實現了beannameaware介面,則呼叫setbeanname 方法傳入當前bean的id。4 如果bean實現了beanf...
spring的bean的生命週期
1,spring通過呼叫構造器,構造bean 2,這個bean裡有些物件屬性需要通過對應得set方法,依賴注入。這是我們用ioc的重要原因,由spring來管理各個bean的關係而不是我們硬編碼來管理,這也是為什麼叫控制反轉的原因 如果實現了initializingbean執行afterproper...
Spring的bean的生命週期
bean的生命週期 定義,初始化,使用,銷毀。這裡僅以下面的兩種方式來說明bean的生命週期 1,呼叫bean的建構函式 或者工廠方法 例項化bean.2,對bean的成員變數賦值.3,如果bean實現了initializingbean,呼叫bean的afterpropertiesset方法.4,如...