Spring4 0筆記整理十 Bean後置處理器

2021-08-19 21:03:54 字數 1806 閱讀 2365

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...