说明

  • CommandLineRunner 是 Spring Boot 提供的一个接口,它定义了一个 run 方法

  • 应用启动完成之后执行。这个接口可以用来执行一些一次性任务或者初始化操作,比如填充数据库、加载静态数据等

用途

  1. 数据初始化:可以在应用启动后立即向数据库添加默认数据。
  2. 环境检查:检查应用运行所需的环境配置是否正确。
  3. 资源预加载:预先加载一些资源,如缓存数据等。
  4. 诊断信息输出:输出一些诊断信息,帮助调试和监控应用的状态。

使用

要在 Spring Boot 应用中使用 CommandLineRunner,你可以创建一个实现了 CommandLineRunner 接口的类,并通过 @Bean 等注解将其注册到 Spring 容器中。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
@Order(1)
public class MyCommandLineRunner implements CommandLineRunner {

@Override
public void run(String... args) throws Exception {
// 在这里编写你需要执行的代码
System.out.println("Application started...");
}
}
  • 可以定义多个 runner 类
  • @Order(1) 指定 runner 执行顺序,升序执行,例如 1、2、3…。没有指定 Order 则最后执行