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 群随时交流、讨论,也非常感谢同学的支持!
30
相似问题