spring初始化 銷毀容器時指定執行的方法

2021-07-27 22:11:07 字數 2111 閱讀 3817

關於在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...