https://www.cnblogs.com/myblogs-miller/p/9046425.html
# SpringBoot中CommandLineRunner的作用
> 平常开发中有可能需要实现在项目启动后执行的功能,SpringBoot提供的一种简单的实现方案就是添加一个model并实现CommandLineRunner接口,实现功能的代码放在实现的run方法中
# 简单例子
``` java
package org.springboot.sample.runner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class MyStartupRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作<<<<<<<<<<<<<");
}
}
```
# 如果有多个类实现CommandLineRunner接口,如何保证顺序
> SpringBoot在项目启动后会遍历所有实现CommandLineRunner的实体类并执行run方法,如果需要按照一定的顺序去执行,那么就需要在实体类上使用一个@Order注解(或者实现Order接口)来表明顺序
```
package org.springboot.sample.runner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(value=2)
public class MyStartupRunner1 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println(">>>>>>>>>>>>>>>服务启动执行 2222 <<<<<<<<<<<<<");
}
}
```
```
package org.springboot.sample.runner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(value=1)
public class MyStartupRunner2 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println(">>>>>>>>>>>>>>>服务启动执行 111111 <<<<<<<<<<<<<");
}
}
```
> 控制台显示
```
>>>>>>>>>>>>>>>服务启动执行 11111111 <<<<<<<<<<<<<
>>>>>>>>>>>>>>>服务启动执行 22222222## 标题 ## <<<<<<<<<<<<<
```
> 根据控制台结果可判断,@Order 注解的执行优先级是按value值从小到大顺序。
转载:https://www.cnblogs.com/myblogs-miller/p/9046425.html
最新文章
- java中获取日期和时间的方法总结
- LUA脚本调用C场景,使用C API访问脚本构造的表
- SharePoint API如何处理时区问题
- PHP 反射机制Reflection
- C语言运算符的注意问题
- 踩坑学php(1)
- EasyUI 使用心得
- C# windows ce编程-----我的第一次
- 传统 Ajax 已死,Fetch 永生
- 团队作业4——第一次项目冲刺(Alpha版本)日志集合处
- 数据库集群 MySQL主从复制
- HTML5网页录音和上传到服务器,支持PC、Android,支持IOS微信
- char在C语言一个字节表示的数据范围
- Write your own operating system Day(1)
- 深入理解Redis Cluster
- 限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块
- html中相对(relative),绝对(absolute)位置以及float的学习和使用案例 (转)
- 高并发秒杀系统方案(JSR303参数校验)
- SQL Server 调优系列进阶篇 - 深入剖析统计信息
- 程序媛计划——python正则表达式