@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時,...