CommandLineRunner

AI摘要
Spring Boot的CommandLineRunner接口用于应用启动后执行初始化任务,如加载数据、初始化缓存。实现该接口并注册为Bean,可通过@Order控制执行顺序,run方法可接收命令行参数。

org.springframework.boot.CommandLineRunner 是 Spring Boot 提供的一个接口,用于在应用程序启动完成后执行一些初始化操作。它通常用于在应用启动后立即运行特定代码,比如加载初始数据、初始化缓存、检查配置等。

主要特性

  • 当 Spring Boot 应用上下文加载完成后,会自动调用所有实现了 CommandLineRunner 接口的 Bean 的 run() 方法
  • 可以通过 @Order 注解指定多个 CommandLineRunner 的执行顺序
  • run() 方法接收命令行参数数组,可以获取启动时传入的参数

使用方式

  1. 实现接口:创建一个类实现 CommandLineRunner 接口
  2. 重写方法:实现 run(String... args) 方法,编写初始化逻辑
  3. 注册为 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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!