【Spring boot 系统启动任务 CommandLineRunner】

Spring boot 系统启动任务 CommandLineRunner
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。
为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。
很简单,只需要一个类就可以,无需其他配置。
创建任务类 1 实现 CommandLineRunner 接口:
com.hpit.sb.runner. MyCommandRunner1
import org.apache.log4j.Logger;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* TODO 为了实现服务器启动即执行某些操作,只需要实现spring boot中的CommandLineRunner接口即可
*
*/
@Component
@Order (value = 1) // 设置启动执行顺序
public class MyCommandRunner1 implements CommandLineRunner {
private Logger logger = Logger. getLogger ( this .getClass());
/**
* TODO 系统启动即会执行Run方法
*/
@Override
public void run(String... arg0 ) throws Exception {
logger .info( "执行启动任务1..." );
}
}
com.hpit.sb.runner. MyCommandRunner2
import org.apache.log4j.Logger;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* TODO 为了实现服务器启动即执行某些操作,只需要实现spring boot中的CommandLineRunner接口即可
*
*
*/
@Component
@Order (value = 2) // 设置启动执行顺序
public class MyCommandRunner2 implements CommandLineRunner {
private Logger logger = Logger. getLogger ( this .getClass());
/**
* TODO 系统启动即会执行Run方法
*/
@Override
public void run(String... arg0 ) throws Exception {
logger .info( "执行启动任务2..." );
}
}
Spring Boot 应用程序在启动后,会遍历 CommandLineRunner 接口的实例并运行它们的 run 方法。也可以利用
@Order 注解(或者实现 Order 接口)来规定所有 CommandLineRunner 实例的运行顺序。
如下我们使用@Order 注解来定义执行顺序。
这里的 args 就是程序启动的时候进行设置的 :
SpringApplication.run(App.class, new String[]{"hello,"," zjs "});
这里为了做演示,配置为固定值了,其实直接接收 main 中的 args 即可,那么在运行的时候,进行配置即
可。
启动应用日志输出:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

God Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值