有时一些特殊的任务需要在系统启动时执行,例如配置文件加载、数据库初始化等操作。Spring Boot 提供了两种解决方案:CommandLineRunner 和 ApplicationRunner。二者使用方式大体一致,差别主要体现在参数上。
一、使用 CommandLineRunner
1,基本介绍
Spring Boot 项目在启动时会遍历所有的 CommandLineRunner 的实现类并调用其中的 run 方法。
- 如果整个系统中有多个 CommandLineRunner 的实现类,那么可以使用 @Order 注解对这些实现类的调用顺序进行排序(数字越小越先执行)。
- run 方法的参数是系统启动是传入的参数,即入口类中 main 方法的参数(在调用 SpringApplication.run 方法时被传入 Spring Boot 项目中)
2,使用样例
(1)首先在项目中添加两个 CommandLineRunner 新建两个类,它们内容分别如下,就是把启动时传入的参数打印出来:
@Component
@Order(1)
public class MyCommandLineRunner1 implements CommandLineRunner {
@Override
publ