第3章 ApplicationRunner 和 CommandLineRunner 服务启动加载配置
SpringBoot 提供了 ApplicationRunner
和 CommandLineRunner
接口,可以用来在服务器启动后,自定义去加载一些配置。例如,我们可以在服务启动后,加载数据库数据等。
使用
我们可以定义多个 ApplicationRunner 或 CommandLineRunner 的实现类。如果想要控制执行的顺序,可以加 @Order()
进行控制。
@Component
public class MetaDataConfigLoader implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("从数据库加载数据成功");
}
}
扩展
除了本篇文章讲的这种方式以外,我们还可以利用 @PostConstruct
、InitializingBean
等方法完成初始化工作。
参考:Running Logic on Startup in Spring
源码
只关注 callRunners()
的方法。(其他的我也暂时不懂)
public ConfigurableApplicationContext run(String... args) {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
ConfigurableApplicationContext context = null;