bean後置處理器是在例項化 bean 之後的處理器,即當 spring ioc容器 例項化 bean 之後進行的增強的處理。
實現了 beanpostprocessor 介面的類即可作為乙個bean後置處理器,它會依次呼叫bean後處理器的兩個方法對 bean 初始化方法的前後進行增強處理。
spring ioc 容器對 bean 的生命週期進行管理的步驟如下:
1)通過構造器或工廠方法建立 bean 例項
2)為 bean 的屬性設定值和對其他 bean 的引用
3)將 bean 例項傳遞給 bean 後置處理器的 postprocessbeforeinitialization方法
4)呼叫 bean 的初始化方法
5)將 bean 例項傳遞給 bean 後置處理器的 postprocessafterinitialization方法
6)bean 可以使用了
7)當容器關閉時, 呼叫 bean 的銷毀方法
注意:bean 的後置處理器是對 ioc容器 裡的所有 bean 逐一處理,而並非某乙個bean。
<一句話概括:bean後置處理器 就是在 bean 的初始化方法前後增加一些處理。>
一、bean後置處理器例項
二、後置處理器的優先順序
1、bean後置處理器:
public
class
mybeanpostprocessor
implements
beanpostprocessor
@override
public object postprocessbeforeinitialization(object bean, string beanname)
throws bean***ception
}
2、xml配置:id="color"
class="com.sun.test.color"
p:name="sk"
init-method="init"
destroy-method="destroy" />
class="com.sun.test.mybeanpostprocessor" />
3、測試方法:public
大家有沒有想過這樣一件事情,如果在 spring ioc容器 中有多個bean後置處理器,那麼它的執行順序又是怎麼設定的呢?
我們可以通過讓 beanpostprocessor 介面實現類實現 ordered 介面的 getorder 方法,該方法返回一整數,預設值為 0,優先順序最高,值越大優先順序越低。**如下:
// 此時的 my1 的優先順序要比 my2的優先順序高。
public
class
my1implements
beanpostprocessor,ordered
}public
class
my2implements
beanpostprocessor,ordered
}
Spring4 0筆記整理九 Bean的生命週期
前面我們提到了在 spring ioc 容器中是可以管理bean 的生命週期,spring 允許在bean 生命週期的特定點執行定製的任務,比如說初始化和銷毀都可以稱為是特定點。我們可以在宣告bean的時候指定init method 和 destroy method 屬性,為 bean 指定初始化和...
Spring4 0 學習筆記(三)
具體 xmlns xmlns xsi xsi schemalocation spring beans.xsd id address class com.anqi.spel.address name city value property name street value wutaishanlu p...
2019 8 2筆記整理
擴充套件 tcp ip構架 協議概述 1 查詢幫助資訊 樹狀結構 一切檔案從根開始 關於磁碟分割槽與掛載的命令 etc fstab 開機自動掛載 df h 檢視磁碟掛載情況 dd if dev zero of root image bs 1024k count 100 建立環迴裝置 虛擬磁碟 fdi...