
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
可能還有別的初始、銷毀的實作方法,歡迎留言和我交流,
推薦去我的博客閱讀更多:
1.Java JVM、集合、多執行緒、新特性系列教程
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
4.Java、后端、架構、阿里巴巴等大廠最新面試題
覺得不錯,別忘了點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/79310.html
標籤:Java
上一篇:Java并發---并發理論
下一篇:WebCallbackManager SpringCloud Alibaba2.2.0 無法導包,不兼容問題 主要是Sentinel
