CommandLineRunner
org.springframework.boot.CommandLineRunner 是 Spring Boot 提供的一个接口,用于在应用程序启动完成后执行一些初始化操作。它通常用于在应用启动后立即运行特定代码,比如加载初始数据、初始化缓存、检查配置等。
主要特性
- 当 Spring Boot 应用上下文加载完成后,会自动调用所有实现了
CommandLineRunner
接口的 Bean 的run()
方法 - 可以通过
@Order
注解指定多个CommandLineRunner
的执行顺序 run()
方法接收命令行参数数组,可以获取启动时传入的参数
使用方式
- 实现接口:创建一个类实现
CommandLineRunner
接口 - 重写方法:实现
run(String... args)
方法,编写初始化逻辑 - 注册为 Bean:通过
@Component
或其他注解将类注册为 Spring 组件import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component;
@Component
@Order(1) // 指定执行顺序,值越小越先执行
public class MyFirstRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("第一个 CommandLineRunner 执行");
// 可以处理命令行参数
if (args != null && args.length > 0) {
System.out.println("接收到的命令行参数:");
for (String arg : args) {
System.out.println(arg);
}
}
}
}
@Component
@Order(2)
class MySecondRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("第二个 CommandLineRunner 执行");
// 执行其他初始化操作
}
}
```
本作品采用《CC 协议》,转载必须注明作者和本文链接