關於在spring 容器初始化 bean 和銷毀前所做的操作定義方式有三種:
通過@postconstruct 和 @predestroy 方法 實現初始化和銷毀bean之前進行的操作
通過 在xml中定義init-method 和 destory-method方法
通過bean實現initializingbean和 disposablebean介面1、
@postconstruct 和 @predestroy 方法:
1)實現類:
public classpersonservice
public void setmessage(string message)
@postconstruct
public void init()
@predestroy
public void dostory()
} 2
)配置:
<?xmlversion="1.0" encoding="utf-8"?>
xmlns:xsi=""
xmlns:context=""
xsi:schemalocation="
/spring-beans-3.1.xsd
/spring-context-3.1.xsd">
3)測試:
public static voidmain(string args)
輸出:i'm init method using @postconstrut....123
i'm destory method using @predestroy.....1232、
在xml中定義init-method 和 destory-method方法:
1)實現類:
public classpersonservice
public void setmessage(string message)
public void init()
public void cleanup() }2
)配置:
3)測試:
public static voidmain(string args)
輸出:init
hello spring
hello spring
cleanup
注:context.registershutdownhook();是乙個鉤子方法
,當jvm關閉退出的時候會呼叫這個鉤子方法,在設計模式之模板模式中 通過在抽象類中定義這樣的鉤子方法由實現類進行實現,。
3、實現initializingbean和 disposablebean介面:
1)定義相應類實現initializingbean ,disposablebean介面:
public classpersonservice implementsinitializingbean,disposablebean
public void setmessage(string message)
@override
public void destroy() throws exception
@override
public void afterpropertiesset() throw***ception }2
)配置:
<?xmlversion="1.0" encoding="utf-8"?>
xmlns:xsi=""
xmlns:context=""
xsi:schemalocation="
/spring-beans-3.1.xsd
/spring-context-3.1.xsd">
3)測試:
public static voidmain(string args)
輸出:i'm init method using implementsdisposablebean inte***ce....123
i'm init method using implementsinitializingbean inte***ce....123
Spring容器中bean的初始化和銷毀工作
spring容器在例項化乙個物件的時候有時候要求對該物件進行初始化的設定,比如一些具有特殊效能的類像資料庫鏈結的乙個工具類,在初始化的時候要求對資料庫例項的驅動進行設定以便於功能方法中呼叫。這種需求可以再bean中定義乙個方法作為init方法 我們況且取名為init 然後再spring配置檔案中通過...
Spring容器初始化過程
1.preparerefresh 初始化placeholder source,校驗xml檔案 2.建立bean容器,載入並註冊bean。bean並沒有完成初始化,bean例項化未完成 初始化乙個defautllistablebeanfactory,載入beandefintion到beanfactor...
Spring 初始化bean之前,銷毀bean之前
spring 初始化bean之前,銷毀bean之後需要做的操作方式有三種 1.通過 postconstruct實現初始化之前進行的操作,predestroy實現銷毀bean之前做的操作 2.通過在xml中定義init method和destory method方法 3.通過bean實現initial...