写在前面
有时针对一些特殊的业务场景,需要在系统启动时执行某些任务,如:配置文件的加载、数据库的初始化等等操作。SpringBoot 提供了两种解决方案:一种是使用CommandLineRunner,另一种是使用 ApplicationRunner。
基本原理
项目在启动时会遍历所有的 ApplicationRunner 的实现类并调用其中的 run 方法,如果在系统中有多个 ApplicationRunner的实现类,可以使用 @Order 注解对这些实现类的调用顺序进行排序(数字越小越先执行);
run方法的参数是系统启动时传入的参数,即入口类中main方法的参数(在调用SpringApplication.run方法时传入到 SpringBoot项目的上下文环境中)。
如何使用
@Component
@Slf4j
@Order(1)
public class MyApplicationRunner implements ApplicationR

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

被折叠的 条评论
为什么被折叠?



