SpringBoot - ApplicationRunner的作用是什么?

本文介绍了SpringBoot在系统启动时如何执行特定任务,主要涉及CommandLineRunner和ApplicationRunner的使用。这两种接口允许在项目启动时加载配置、初始化数据库等。它们之间的区别在于run方法的参数,ApplicationRunner接收ApplicationArguments对象,而CommandLineRunner接收字符串数组。通过@Order注解可以控制执行顺序。此外,文章还解释了选项参数、非选项参数和系统参数的概念。

写在前面

有时针对一些特殊的业务场景,需要在系统启动时执行某些任务,如:配置文件的加载、数据库的初始化等等操作。SpringBoot 提供了两种解决方案:一种是使用CommandLineRunner,另一种是使用 ApplicationRunner。

基本原理

项目在启动时会遍历所有的 ApplicationRunner 的实现类并调用其中的 run 方法,如果在系统中有多个 ApplicationRunner的实现类,可以使用 @Order 注解对这些实现类的调用顺序进行排序(数字越小越先执行);
run方法的参数是系统启动时传入的参数,即入口类中main方法的参数(在调用SpringApplication.run方法时传入到 SpringBoot项目的上下文环境中)。

如何使用

@Component
@Slf4j
@Order(1)
public class MyApplicationRunner implements ApplicationR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cloneme01

谢谢您的支持与鼓励!

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

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

打赏作者

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

抵扣说明:

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

余额充值