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"); } }
輸出結果:
總結:
Spring 提供了多種初始化手段,除了課堂上講的 @PostConstruct,@Bean(initMethod) 之外,還可以實現(xiàn) InitializingBean 接口來進行初始化,如果同一個 bean 用了以上手段聲明了 3 個初始化方法,那么它們的執(zhí)行順序是
- @PostConstruct 標注的初始化方法
- InitializingBean 接口的初始化方法
- @Bean(initMethod) 指定的初始化方法
與初始化類似,Spring 也提供了多種銷毀手段,執(zhí)行順序為
- @PreDestroy 標注的銷毀方法
- DisposableBean 接口的銷毀方法
- @Bean(destroyMethod) 指定的銷毀方法
到此這篇關于Spring初始化與銷毀順序案例演示詳解的文章就介紹到這了,更多相關Spring初始化與銷毀順序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
快速搭建Spring Boot+MyBatis的項目IDEA(附源碼下載)
這篇文章主要介紹了快速搭建Spring Boot+MyBatis的項目IDEA(附源碼下載),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12SpringBoot在生產快速禁用Swagger2的方法步驟
這篇文章主要介紹了SpringBoot在生產快速禁用Swagger2的方法步驟,使用注解關閉Swagger2,避免接口重復暴露,非常具有實用價值,需要的朋友可以參考下2018-12-12解決dubbo啟動報服務注冊失敗Failed?to?register?dubbo
這篇文章主要介紹了解決dubbo啟動報服務注冊失敗Failed?to?register?dubbo問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12