springbean初始化及銷燬你必須要掌握的回撥方法。

Java技術棧發表於2017-08-13

spring bean在初始化和銷燬的時候我們可以觸發一些自定義的回撥操作。

初始化的時候實現的方法

1、通過java提供的@PostConstruct註解;

2、通過實現spring提供的InitializingBean介面,並重寫其afterPropertiesSet方法;

3、通過spring的xml bean配置或bean註解指定初始化方法,如下面例項的initMethod方法通過@bean註解指定。

銷燬的時候實現的方法

1、通過java提供的@PreDestroy註釋;

2、通過實現spring提供的DisposableBean介面,並重寫其destroy方法;

3、通過spring的xml bean配置或bean註解指定銷燬方法,如下面例項的destroyMethod方法通過@bean註解指定。

初始、銷燬順序是怎樣的呢?

我們通過一個簡單的測試安全來驗證一下,分別把它們都派上用場。

上圖為要載入並銷燬的bean類。

上圖為測試並載入spring容器類,輸出這個方法得到以下結果。

===Constructor===

===@PostConstruct===

===InitializingBean afterPropertiesSet===

===initMethod===

===@PreDestroy===

===DisposableBean distroy===

===destroyMethod===

結論

從測試結果看出來的結果可以總結初始和銷燬對應的順序為:

初始:類構造器 > @PostConstruct > InitializingBean > init-method

銷燬:@PreDestroy > DisposableBean > destroyMethod

可能還有別的初始、銷燬的實現方法,歡迎留言和我交流。


相關文章