springboot开机自启动问题

来源:3-9 SpringBoot 开机启动

qq_红_14

2019-08-29

老师,关于开机自启动,我之前是一直在使用initializingbean方法的。今天看到老师讲applicationrunner方法。

想问一下这两种开机自启动与initializingbean,有什么区别,有什么优劣呢

写回答

1回答

张勤一

2019-08-29

同学你好:

    这个问题提的挺好的,我来做一些解释。首先,我们可以看一看 InitializingBean 的定义:

public interface InitializingBean {
    void afterPropertiesSet() throws Exception;
}

    InitializingBean 接口为 bean 提供了属性初始化后的处理方法,它只包括 afterPropertiesSet 方法,凡是继承该接口的类,在 bean 的属性初始化后都会执行该方法。

    但是,需要注意的是,InitializingBean 是在当前的 Bean 初始化完成之后就去执行的。而我在课程中讲到的 ApplicationRunner 和 CommandLineRunner 则是在所有的 Bean 都初始化完成之后才会去执行。所以,我们可以在 ApplicationRunner 和 CommandLineRunner 中直接注入系统中的 bean 做一些操作。

    另外,InitializingBean 是 Spring 框架的接口,而 ApplicationRunner 和 CommandLineRunner 则是 SpringBoot 提供的接口。

    不过,通常来说,如果开机启动的任务没有依赖,使用任何一种方式都是可行的,区别不大。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

3
0

Spring Cloud微服务实战 打造企业级优惠券系统

微服务,SpringCloud,SpringBoot面试、毕设、

1203 学习 · 487 问题

查看课程