spring中bean的初始化呼叫或者銷毀時呼叫

2021-10-08 19:03:50 字數 1903 閱讀 3947

@bean部分原始碼如下

// bean 初始化呼叫

string initmethod()

default"";

// bean 消費時呼叫

string destroymethod()

default abstractbeandefinition.infer_method;

例子

public

class

person

//銷毀時呼叫

public

void

destory()

}

@bean

(value =

"per"

,initmethod =

"init"

,destroymethod =

"destory"

)public person person()

實現initializng介面並重寫afterpropertiesset方法,實現初始化執行方法。

實現disposablebean介面並重寫destroy方法,實現bean銷毀時呼叫方法。

這種方式實際上是依靠initdestroyannotationbeanpostprocessor處理器實現的

例子

@component

public

class

person

implements

initializingbean

,disposablebean

// 初始化時呼叫

@override

public

void

afterpropertiesset()

throws exception

}

例子

@component

public

class

person

// 消費時呼叫

@predestroy

public

void

destory()

}

實現beanpostprocessor介面自定bean初始化時的前置處理和後置處理

例子

public

class

person

public

void

destory()

}

@component

public

class

personbeanpostprocessor

implements

beanpostprocessor

return bean;

}/**

* bean 初始化後呼叫

* @param bean

* @param beanname

* @return

* @throws bean***ception

*/public object postprocessafterinitialization

(object bean, string beanname)

throws bean***ception

return bean;

}}

輸出結果

Spring中Bean的初始化流程

spring中經典的9種設計模式 mybatis執行流程 通常乙個 xml 對映檔案,都會寫乙個 dao 介面與之對應,請問,這個 dao 介面的工作原理是什麼?dao 介面裡的方法,引數不同時,方法能過載嗎?id是否可以相同 spring bean 的初始化主要實現在bean.factory包下的...

Spring初始化Bean方法

一 總結 1 spring為bean初始化提供了兩種方式 2 實現initializingbean介面是直接呼叫afterpropertiesset方法,比通過反射呼叫init method指定的方法效率相對來說要高點。但是init method方式消除了對spring的依賴 3 如果呼叫after...

Spring初始化Bean狀態

一 單例模式 在spring中其實是scope 作用範圍 引數的預設設定值 每個bean定義只生成乙個物件例項,每次getbean請求獲得的都是此例項 單例模式分為餓漢模式和懶漢模式 關於單例的餓漢,懶漢請參考 二 預設情況下為單例模式 餓漢 prototype多例項模式介紹 呼叫getbean時,...