想springboot启动完成后执行某个方法
如题,很多时候,我们都需要在springboot项目启动后初始化化一些自己的数据
原文地址:https://www.jianshu.com/p/f80f833ab8f6
实现方法有2个。
一、ApplicationRunner
实现ApplicationRunner接口
打上@Component
+implements ApplicationRunner
@Component
public class DemoApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("ApplicationRunner");
}
}
二、CommandLineRunner
实现CommandLineRunner接口
打上@Component
+implements CommandLineRunner
@Component
public class DemoComLiner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("CommandLineRunner");
}
}
原理讲解
SpringApplication的run方法会执行afterRefresh方法
afterRefresh会触发callRunners方法
callRunners方法会调用容器里面所有实现了ApplicationRunner、CommandLineRunner接口的方法
欢迎关注我的公众号:“从零开始的it转行生”
![](https://upload-images.jianshu.io/upload_images/22777058-d0ccf15d56f2b6c7.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)