1.介绍如何控制CommandLineRunner接口实现类执行顺序?
2.介绍CommandLineRunner接口作用?
一、CommandLineRunner接口作用
平常开发中有可能需要实现在项目启动后执行的功能,SpringBoot提供的一种简单的实现方案就是添加一个model并实现CommandLineRunner接口,实现功能的代码放在实现的run方法中也就是项目一启动之后,就立即需要执行的动作。
二、多实现类执行顺序
可以通过注解@Order控制实现类执行顺序,其中Order的值越小越先被执行;
案例如下:
package com.dbzhang.commandLineRunner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @program: spring-boot-2022-05
* @description: SpringBoot项目启动之后,立即执行这个CommandLineRunner.run()方法;另外需要使用注解@Order控制实现类执行顺序,order的值越小越先被执行;
* @author: zdb
* @motto: 认真写好每一行代码
* @create: 2022-10-08 22:40
*/
@Component
@Order(1)
public class MyStartupRunner1 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("执行MyStartupRunner1");
}
}
package com.dbzhang.commandLineRunner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @program: spring-boot-2022-05
* @description:
* @author: zdb
* @motto: 认真写好每一行代码
* @create: 2022-10-08 22:40
*/
@Component
@Order(2)
public class MyStartupRunner2 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("执行MyStartupRunner2");
}
}
执行结果如图: