spring管理bean的生命週期與spring通過工廠方法配置bean

又見藤蔓發表於2017-01-05
IOC容器中bean的生命週期方法
SpringIOC容器可以管理bean的生命週期,Spring允許在Bean生命週期的特定點執行定製的任務
SpringIOC容器對Bean的生命週期進行管理的過程:
 1 通過構造器或工廠方法建立bean例項
 2 位bean的屬性設定值和對其他bean的引用
 3 呼叫bean的初始化方法
 4 bean可以使用了
 5 當容器關閉時,呼叫bean的銷燬方法

在bean的宣告裡設定init-method和destroy-method屬性,為bean指定初始化和銷燬方法

建立Bean後置處理器
Bean後置處理器允許在呼叫初始化方法前後對bean進行額外的處理
bean後置處理器對IOC容器裡的所有bean例項逐一處理,而非單一例項,其典型的應用是:檢查bean屬性的正確性或根據特定的標準更改bean的屬性
對bean後置處理器而言,需要實現Interface BeanPostProcessor介面,在初始化方法被呼叫前後,Spring將把每個bean例項分別傳遞給上述即可歐的一下兩個方法
postProcessBeforeInitialization
postProcessAfterInitialization


新增bean後置處理器後bean的生命週期
SpringIOC容器對bean的生命週期進行管理的過程:
1 通過構造器或工廠方法建立bean例項
2 為bean的屬性設定值和對其他bean的引用
3 將bean例項傳遞給bean後置處理器的postProcessBeforeInitialization方法
4 呼叫bean的初始化方法
5 將bean例項傳遞給bean後置處理器的postProcessAfterInitialization方法
6 bean可以使用了
7 當容器關閉時,呼叫bean的銷燬方法

首先貼上java類:

spring得xml檔案:

先看說明,如果不懂就根據截圖自己實驗下,這些都是我經過測試的。

工廠方法建立bean

通過呼叫靜態工廠方法建立bean
呼叫靜態工廠方法建立bean是將物件建立的過程封裝到靜態方法中,當客戶端需要物件時,只需要簡單的呼叫靜態方法,而不必關心建立物件的細節
要宣告通過靜態方法建立的bean,需要在bean的class屬性裡制定擁有該工廠的方法的類,同時在factory-method屬性裡指定擁有該工廠的方法的類,同時在
factory-method屬性裡指定工廠方法的名稱,最後,使用<constrctor-arg>元素為該方法傳遞方法引數

相關java類:



靜態工廠方法建立bean的spring的xml檔案

通過呼叫例項工廠方法建立bean
例項工廠方法:將物件的建立過程封裝到另外一個物件例項的方法裡。當客戶端需要請求物件時,只需要簡單的呼叫該例項方法而不需要關心物件的建立細節。
要宣告通過例項工廠方法建立的bean
1 在bean的factory-bean屬性裡指定擁有該工廠方法的bean
在factory-method屬性裡指定該工廠方法的名稱、
使用construtor-org元素為工廠方法傳遞方法引數

相關java類:

car類不變,根靜態工廠方法那個一樣,

相關spring 的xml:

最後的測試方法:


相關文章