Spring初始化与销毁顺序案例演示详解
更新时间:2023年02月07日 16:20:43 作者:tanglin_030907031026
这篇文章主要介绍了SpringBoot中的Bean的初始化与销毁顺序,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
演示 - 初始化销毁顺序
/* 初始化和销毁的执行顺序 */ @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) 之外,还可以实现 InitializingBean 接口来进行初始化,如果同一个 bean 用了以上手段声明了 3 个初始化方法,那么它们的执行顺序是
- @PostConstruct 标注的初始化方法
- InitializingBean 接口的初始化方法
- @Bean(initMethod) 指定的初始化方法
与初始化类似,Spring 也提供了多种销毁手段,执行顺序为
- @PreDestroy 标注的销毁方法
- DisposableBean 接口的销毁方法
- @Bean(destroyMethod) 指定的销毁方法
到此这篇关于Spring初始化与销毁顺序案例演示详解的文章就介绍到这了,更多相关Spring初始化与销毁顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
快速搭建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
最新评论