当前位置:主页 > java教程 > Spring初始化与销毁顺序

Spring初始化与销毁顺序案例演示详解

发布:2023-04-11 08:35:01 59


给网友朋友们带来一篇相关的编程文章,网友班弘扬根据主题投稿了本篇教程内容,涉及到Spring初始化、Spring销毁顺序、Spring初始化与销毁顺序相关内容,已被305网友关注,涉猎到的知识点内容可以在下方电子书获得。

Spring初始化与销毁顺序

演示 - 初始化销毁顺序

/*
    初始化和销毁的执行顺序
 */
@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初始化与销毁顺序内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

网友讨论