Spring Boot通过CommandLineRunner实现系统启动任务

Spring Boot通过CommandLineRunner实现系统启动任务

Laughing
2021-06-08 / 0 评论 / 1,040 阅读 / 搜一下 / 正在检测是否收录...

所谓系统启动任务,是在系统启动时执行的一些操作,一般而言只在系统启动之时执行,并且一般只执行一次。比如加载配置文件、数据库初始化操作等。

Spring Boot针对系统启动任务,提供了两种解决方案:一是实现CommandLineRunner接口另一种方式是实现ApplicationRunner接口。

本文针对CommandLineRunner方式进行说明。

Spring Boot项目在启动时,会遍历所有CommandLineRunner实现类并调用其中的run()方法。

如果系统中有多个CommandLineRunner实现类,可以通过@Order()注解指定实现类的调用顺序,数值越小越先执行。

MyCommandLineRunner1

@Component
@Order(1)
@Slf4j
public class MyCommandLineRunner1 implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        log.info("Runner1>>>" + Arrays.toString(args));
    }
}

MyCommandLineRunner2

@Component
@Order(1)
@Slf4j
public class MyCommandLineRunner2 implements CommandLineRunner {

    @Override
    public void run(String... args) {
        log.info("Runner2>>>" + Arrays.toString(args));
    }
}

idea配置入口参数

  • @Order(1)用来描述CommandLineRunner的执行顺序,值越小越先执行。
  • run()方法的参数是系统启动时传入的参数。
0

评论 (0)

取消
  1. 头像
    沐子
    Windows 10 · Google Chrome

    好文章

    回复