原创

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

温馨提示:
本文最后更新于 2024年02月07日,已超过 18 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

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

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()方法的参数是系统启动时传入的参数。
正文到此结束
本文目录