博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 启动加载数据 CommandLineRunner
阅读量:7102 次
发布时间:2019-06-28

本文共 2212 字,大约阅读时间需要 7 分钟。

hot3.png

实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。 

为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。

很简单,只需要一个类就可以,无需其他配置。 

创建实现接口 CommandLineRunner 的类

package org.springboot.sample.runner;import org.springframework.boot.CommandLineRunner;import org.springframework.stereotype.Component;/** * 服务启动执行 * * @author   单红宇(365384722) * @myblog  http://blog.csdn.net/catoop/ * @create    2016年1月9日 */@Componentpublic class MyStartupRunner1 implements CommandLineRunner {    @Override    public void run(String... args) throws Exception {        System.out.println(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作<<<<<<<<<<<<<");    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

Spring Boot应用程序在启动后,会遍历CommandLineRunner接口的实例并运行它们的run方法。也可以利用@Order注解(或者实现Order接口)来规定所有CommandLineRunner实例的运行顺序。

如下我们使用 注解来定义执行顺序。

package org.springboot.sample.runner;import org.springframework.boot.CommandLineRunner;import org.springframework.core.annotation.Order;import org.springframework.stereotype.Component;/** * 服务启动执行 * * @author   单红宇(365384722) * @myblog  http://blog.csdn.net/catoop/ * @create    2016年1月9日 */@Component@Order(value=2)public class MyStartupRunner1 implements CommandLineRunner {    @Override    public void run(String... args) throws Exception {        System.out.println(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 11111111 <<<<<<<<<<<<<");    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
package org.springboot.sample.runner;import org.springframework.boot.CommandLineRunner;import org.springframework.core.annotation.Order;import org.springframework.stereotype.Component;/** * 服务启动执行 * * @author   单红宇(365384722) * @myblog  http://blog.csdn.net/catoop/ * @create    2016年1月9日 */@Component@Order(value=1)public class MyStartupRunner2 implements CommandLineRunner {    @Override    public void run(String... args) throws Exception {        System.out.println(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 22222222 <<<<<<<<<<<<<");    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

启动程序后,控制台输出结果为:

>>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 22222222 <<<<<<<<<<<<<>>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 11111111 <<<<<<<<<<<<<
  • 1
  • 2

根据控制台结果可判断, 注解的执行优先级是按value值从小到大顺序。

转载于:https://my.oschina.net/xiaominmin/blog/1797470

你可能感兴趣的文章
HashMap和 HashSet区别
查看>>
ExtJS中form提交之后获取返回的json值
查看>>
python返回值与局部全局变量
查看>>
NOIP-无线网路发射器选址
查看>>
iOS随记
查看>>
金句集(目前9句)
查看>>
np.Linear algebra学习
查看>>
ABAP中Class/method对应program name获取
查看>>
swift 的循环
查看>>
按失真类型分类整理IQA数据集:TID2013
查看>>
《Android深入透析》之Android事件分发机制
查看>>
使用Gradle构建android应用
查看>>
Web开发常用代码:背投广告
查看>>
leetcode5
查看>>
003——VUE操作元素属性
查看>>
MHA安装手记
查看>>
TStrings的一些技巧(转)
查看>>
学了N年英语,你学会翻译了吗?——最基本的数据库连接
查看>>
Python之运算符
查看>>
程序员生存指南——镜像加速
查看>>