Spring學習2 Bean的生命週期

2021-06-16 07:15:31 字數 626 閱讀 9461

1.使用beanfactory容器時:

(1) 容器尋找bean的定義資訊並且將其實例化。

(2) 使用依賴注入,spring按照bean定義資訊配置bean的所有屬性。

(3) 如果bean實現了beannameaware介面,工廠呼叫bean的setbeanname()方法傳遞bean的id。

(4) 如果bean實現了beanfactoryaware介面,工廠呼叫setbeanfactory()方法傳入工廠自身。

(5) 如果有beanpostprocessor和bean關聯,那麼它們的postporcessbeforeinitialzation()方法將被呼叫。

(6) 如果指定了init-method方法,它將被呼叫。

(7) 最後,如果有beanpostprocessor和bean關聯,那麼它們的postprocessafterinitialization()方法將被呼叫。

到這個時候,bean已經可以被應用系統使用了,並且將被保留在beanfactory中知道它不再被需要。有兩種方式可以把它從beanfactory中刪除掉。

(1) 如果bean實現了disposablebean介面,destory()方法被呼叫。

(2) 如果指定了定製的銷毀方法,就呼叫這個方法。

spring筆記2 bean引用其他bean

在 spring筆記1 基於spring框架的第乙個程式 一文中,在spring conf.xml中配置bean時,我們向這個bean傳入了一些引數,但是這些引數都是一些簡單資料型別,如int string等,本文將說明如何將乙個bean作為乙個引數傳給另外乙個bena,即bean引用其他bean。...

Java面試之Spring的bean的生命週期

一 bean的定義 spring通常通過配置檔案定義bean。如 xmlns xsi xsi schemalocation spring beans 2.0.xsd helloworld 這個配置檔案就定義了乙個標識為 helloworld 的bean。在乙個配置文件中可以定義多個bean。二 be...

Spring學習二(Bean配置)

繼承圖 beanfactory 載入配置檔案時,例項化延遲,在呼叫getbean 的時候才進行例項化。test public void testhellospring 這種方式,比較常用,也就是只在bean.xml檔案中配置就行了 id userid class com.exmaple.spring...