一 、前言

      在程序开发的时候,经常遇到程序启动的时候执行一些业务逻辑,SpringBoot的CommandLineRunner 接口就实现这个功能,在程序启动成功后,执行一段业务逻辑,并且只执行一次。

二、CommandLineRunner

说明

      新建类去实现 CommandLineRunner 接口, 同时为类加上 @Component 注解.

      当Spring 容器初始化完成后, Spring 会遍历所有实现 CommandLineRunner 接口的类, 并运行其run() 方法.
这个方式是最推荐的, 原因是:

  1. 因为 Runner 类也是 @Component 类, 这样就能利用上Spring的依赖注入, 获取到 Spring 管理的bean对象.
  2. 可以创建多个 Runner 类, 为了控制执行顺序, 可以加上 @Order 注解, 序号越小越早执行.

建立Spring Boot项目

Spring Boot 程序启动后执行某个方法 CommandLineRunner_springboot

实现CommandLineRunner

@Component
@Order(value = 1)
public class Nest implements CommandLineRunner {
    @Override
    public void run(String... strings) throws Exception {
        System.out.println("111111111111111111111111");
    }
}
@Component
@Order(value = 2)
public class Nest2 implements CommandLineRunner {
    @Override
    public void run(String... strings) throws Exception {
        System.out.println("2222222222222222222222222");
    }
}

执行结果

Spring Boot 程序启动后执行某个方法 CommandLineRunner_springboot_02

三、小结

      稳定,舒服。