# 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

最新文章

  1. java中获取日期和时间的方法总结
  2. LUA脚本调用C场景,使用C API访问脚本构造的表
  3. SharePoint API如何处理时区问题
  4. PHP 反射机制Reflection
  5. C语言运算符的注意问题
  6. 踩坑学php(1)
  7. EasyUI 使用心得
  8. C# windows ce编程-----我的第一次
  9. 传统 Ajax 已死,Fetch 永生
  10. 团队作业4——第一次项目冲刺(Alpha版本)日志集合处
  11. 数据库集群 MySQL主从复制
  12. HTML5网页录音和上传到服务器,支持PC、Android,支持IOS微信
  13. char在C语言一个字节表示的数据范围
  14. Write your own operating system Day(1)
  15. 深入理解Redis Cluster
  16. 限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块
  17. html中相对(relative),绝对(absolute)位置以及float的学习和使用案例 (转)
  18. 高并发秒杀系统方案(JSR303参数校验)
  19. SQL Server 调优系列进阶篇 - 深入剖析统计信息
  20. 程序媛计划——python正则表达式

热门文章

  1. 排Bug技巧
  2. Mybatis @ResultMap复用@Result
  3. 我的Vue朝圣之路1
  4. iOS - WebRTC 自编译(音视频即时通讯开源库)
  5. Django流程图(精简版)
  6. thinkPHP中session()方法用法详解
  7. 恶意代码分析学习之dll相关记录
  8. vue + elementui 使用多选按钮实现单选功能
  9. 尚硅谷MySQL基础学习笔记
  10. WebSocket转载