Spring物件初始化前後執行操作

2021-09-25 00:23:16 字數 1650 閱讀 1617

功能: 通過乙個實現beanpostprocessor介面的類,並將該類物件註冊到spring中。使所有spring物件的初始化前後執行都執行乙個自定義方法

步驟:

建立乙個實現beanpostprocessor介面的類

ps: 建立多個beanpostprocessor介面的類,還需要實現ordered介面來,來確定方法執行順序的優先順序,返回數值越小優先順序越高,最小值為0。

在xml配置檔案中,註冊bean物件的後置處理器(也就是實現beanpostprocessor介面類的bean物件)

beanpostprocessor介面的類

public

class

mybeanpostprocessor

implements

beanpostprocessor

/* * 本方法一定要返回bean物件

*/@override

public object postprocessafterinitialization

(object bean, string beanname)

throws bean***ception

}

xml配置檔案註冊上面的類bean物件

class

="com.bb.processor.mybeanpostprocessor"

id="beanpostprocessor"

>

bean

>

測試類物件

public

class

userservice

public

void

setname

(string name)

@postconstruct

public

void

init()

}

ps@postconstruct註解方法,該方法會在該類物件初始化時執行。不要檔案在xml配置檔案中開啟註解掃瞄

<

context:annotation-config

>

context:annotation-config

>

測試方法

@test

public

void

test2()

列印輸出

構造方法執行...

設值注入...

userservice物件初始化前...

初始化...

userservice物件初始化後...

總結:通過乙個簡簡單單的beanpostprocessor介面實現類,所有的spring物件在初始化前後都會執行自定義方法。

物件初始化

在oc中使用alloc後,會分配到一塊記憶體塊,同時這塊記憶體塊會被清零,所以初始化函式init是不需要再做置零的操作的。在oc中,應該在alloc後就呼叫初始化函式init,使用new可以達到這個效果,但new不是oc的風格。物件在init時,應該先使用其父類的init,然後再使用自己的init行...

物件初始化

我們知道當使用new關鍵字建立乙個物件的時候,會呼叫相應的建構函式對該物件進行初始化,那麼這個過程中到底都還有什麼事情呢?先看一段 當執行語句 student stu new student zhangsan 17 執行該語句的時候在記憶體中程式都做了什麼事情,讓我們一一枚舉出來 1 因為new用到...

物件初始化

每乙個物件都應該在建立之時就有確定的內容,否則就失去了物件的意義了。定義乙個物件,在系統為其分配記憶體時,應該同時對有關的資料成員賦初始值。首先,不能在類宣告中對資料成員初始化。因為類不是實體,而是抽象型別,不占用記憶體而無處容納資料。如果類中資料為私有或受保護的,則不能在定義物件時賦初值。time...