springboot 启动时执行任务CommandLineRunner
程序员文章站
2022-04-29 18:54:14
...
平常开发中有可能需要实现在项目启动后执行的功能,SpringBoot提供的一种简单的实现方案就是添加一个model并实现CommandLineRunner接口,实现功能的代码放在实现的run方法中
如果有多个类实现CommandLineRunner接口,如何保证顺序
SpringBoot在项目启动后会遍历所有实现CommandLineRunner的实体类并执行run方法,如果需要按照一定的顺序去执行,那么就需要在实体类上使用一个@Order注解(或者实现Order接口)来表明顺序
注意: @Order 注解的执行优先级是按value值从小到大顺序。
代码如下:
第一个类:
package com.ws.util;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @ClassName OpenTest
* @Description TODO
* @Date 14:52 2019/6/14
* @Author Ws
* @Version 1.0
**/
@Component
@Order(value = 1)
public class OpenTest implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("这是启动第一个数据库");
}
}
第二个类
package com.ws.util;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @ClassName OpenTest
* @Description TODO
* @Date 14:52 2019/6/14
* @Author Ws
* @Version 1.0
**/
@Component
@Order(value = 2)
public class OpenTest2 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("这是启动第二个数据库");
}
}
控制台打印:
上一篇: HTML常用标签一
下一篇: Java的基础笔记......1
推荐阅读
-
SpringBoot 源码解析 (三)----- Spring Boot 精髓:启动时初始化数据
-
springboot启动时运行代码详解
-
SpringBoot项目在启动时出现了Cannot determine embedded database driver class for database type NONE 错误
-
01Springboot启动时端口被占用
-
springboot使用CommandLineRunner解决项目启动时初始化资源的操作
-
Springboot项目启动时如何用命令动态指定环境
-
Springboot项目启动时自动打印访问地址
-
springBoot启动时让方法自动执行的几种实现方式
-
springboot启动时如何获取端口和项目名
-
springboot启动时 报Error creating bean with name ‘XXXMapper‘ defined in file