Spring初始化與銷毀順序案例演示詳解
演示 - 初始化銷毀順序
/*
初始化和銷毀的執(zhí)行順序
*/
@SpringBootApplication
public class A07_1 {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(A07_1.class, args);
context.close();
}
@Bean(initMethod = "init3")
public Bean1 bean1() {
return new Bean1();
}
@Bean(destroyMethod = "destroy3")
public Bean2 bean2() {
return new Bean2();
}
}Bean1
public class Bean1 implements InitializingBean {
private static final Logger log = LoggerFactory.getLogger(Bean1.class);
@PostConstruct
public void init1() {
log.debug("初始化1");
}
@Override
public void afterPropertiesSet() throws Exception {
log.debug("初始化2");
}
public void init3() {
log.debug("初始化3");
}
}Bean2
public class Bean2 implements DisposableBean {
private static final Logger log = LoggerFactory.getLogger(Bean2.class);
@PreDestroy
public void destroy1() {
log.debug("銷毀1");
}
@Override
public void destroy() throws Exception {
log.debug("銷毀2");
}
public void destroy3() {
log.debug("銷毀3");
}
}輸出結(jié)果:


總結(jié):
Spring 提供了多種初始化手段,除了課堂上講的 @PostConstruct,@Bean(initMethod) 之外,還可以實(shí)現(xiàn) InitializingBean 接口來進(jìn)行初始化,如果同一個(gè) bean 用了以上手段聲明了 3 個(gè)初始化方法,那么它們的執(zhí)行順序是
- @PostConstruct 標(biāo)注的初始化方法
- InitializingBean 接口的初始化方法
- @Bean(initMethod) 指定的初始化方法
與初始化類似,Spring 也提供了多種銷毀手段,執(zhí)行順序?yàn)?/p>
- @PreDestroy 標(biāo)注的銷毀方法
- DisposableBean 接口的銷毀方法
- @Bean(destroyMethod) 指定的銷毀方法
到此這篇關(guān)于Spring初始化與銷毀順序案例演示詳解的文章就介紹到這了,更多相關(guān)Spring初始化與銷毀順序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
快速搭建Spring Boot+MyBatis的項(xiàng)目IDEA(附源碼下載)
這篇文章主要介紹了快速搭建Spring Boot+MyBatis的項(xiàng)目IDEA(附源碼下載),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
基于JSON和java對(duì)象的互轉(zhuǎn)方法
下面小編就為大家?guī)硪黄贘SON和java對(duì)象的互轉(zhuǎn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
SpringBoot在生產(chǎn)快速禁用Swagger2的方法步驟
這篇文章主要介紹了SpringBoot在生產(chǎn)快速禁用Swagger2的方法步驟,使用注解關(guān)閉Swagger2,避免接口重復(fù)暴露,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-12-12
解決dubbo啟動(dòng)報(bào)服務(wù)注冊失敗Failed?to?register?dubbo
這篇文章主要介紹了解決dubbo啟動(dòng)報(bào)服務(wù)注冊失敗Failed?to?register?dubbo問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Java實(shí)現(xiàn)產(chǎn)生隨機(jī)字符串主鍵的UUID工具類
這篇文章主要介紹了Java實(shí)現(xiàn)產(chǎn)生隨機(jī)字符串主鍵的UUID工具類,涉及java隨機(jī)數(shù)與字符串遍歷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10

