springboot中ApplicationRunner执行顺序问题小结

 更新时间:2025年06月18日 10:22:38   作者:Muscleheng  
SpringBoot中ApplicationRunner用于应用启动后执行初始化任务,通过@Order注解可控制多个Runner的执行顺序,数值越小越优先,下面就一起来了解一下

作用:ApplicationRunner‌是Spring Boot提供的一个接口,主要用于在Spring应用完全启动后执行特定的初始化任务或逻辑,例如数据库初始化、配置文件加载、缓存预热等。

具体用法这里就不做详细介绍了。

当我们有多个ApplicationRunner‌,并且需要严格控制执行顺序的时候,可以使用注解:

@Order(9) // 数值越小执行顺序越靠前

示例,我们写3个ApplicationRunner‌,加上@Order()注解,然后启动项目观察执行顺:

第一个:

@Slf4j
@Order(1) // 数值越小执行顺序越靠前
@Component
public class ARunner implements ApplicationRunner {
    
    /**
     * 项目启动成功后执行
     * @param args
     */
    @Override
    public void run(ApplicationArguments args) {
        log.info("项目启动成功,执行任务A");
        try {
        }catch (Exception e){
            log.error("执行错误.", e);
        }
    }
}

第二个:

@Slf4j
@Order(99) // 数值越小执行顺序越靠前
@Component
public class BRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) {
        log.info("项目启动成功,执行任务B");
        try {
        }catch (Exception e){
            log.error("执行错误.", e);
        }
    }
}

第三个:

@Slf4j
@Order(9) // 数值越小执行顺序越靠前
@Component
public class CRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) {
        log.info("项目启动成功,执行任务C");
        try {
        }catch (Exception e){
            log.error("执行错误.", e);
        }
    }
}

执行结果:可以看到,执行顺序就是按照@Order()注解来执行的,数值越小执行顺序越靠前。

到此这篇关于springboot中ApplicationRunner执行顺序问题小结的文章就介绍到这了,更多相关springboot ApplicationRunner执行顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java基础-Java常量和常量值

    Java基础-Java常量和常量值

    这篇文章主要介绍了Java基础-Java常量和常量值,在程序中存在大量的数据来代表程序的状态,其中有些数据在程序运行过程中值不能发生改变,这些数据在程序中被叫做常量,下面文章对Java常量和常量值的详细内容,需要的小伙伴可以参考一下
    2022-01-01
  • Java常用类库StringBuffer,Runtime,日期操作类等类库总结

    Java常用类库StringBuffer,Runtime,日期操作类等类库总结

    这篇文章主要介绍了Java常用类库StringBuffer,Runtime,日期操作类等类库总结,需要的朋友可以参考下
    2020-02-02
  • Springboot Retry组件@Recover失效问题解决方法

    Springboot Retry组件@Recover失效问题解决方法

    在使用springboot的retry模块时,你是否出现过@Recover注解失效的问题呢?不用担心,这篇文章就来告诉你解决@Recover失效的办法,需要的小伙伴可以参考一下
    2021-11-11
  • Java优化模糊搜索体验的方法详解

    Java优化模糊搜索体验的方法详解

    在小数据量场景下,如何优化模糊搜索体验呢,本文分享一个简单实用的方案,虽然有点笨拙,但效果还的不错的,希望对大家有一定的帮助
    2025-04-04
  • JAVA算法起步之快速排序实例

    JAVA算法起步之快速排序实例

    这篇文章主要介绍了JAVA算法起步之快速排序实例,需要的朋友可以参考下
    2014-02-02
  • Java获取汉字拼音的全拼和首拼实现代码分享

    Java获取汉字拼音的全拼和首拼实现代码分享

    这篇文章主要介绍了Java获取汉字拼音的全拼和首拼实现代码分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-06-06
  • 详解Java如何实现防止恶意注册

    详解Java如何实现防止恶意注册

    恶意注册通常是指使用自动化脚本或者机器人在短时间内进行大量的注册行为,这种行为会对系统造成压力,甚至会导致系统瘫痪。所以本文为大家总结了一些防止恶意注册的方法,需要的可以参考一下
    2023-04-04
  • 一起聊聊Java中13种锁的实现方式

    一起聊聊Java中13种锁的实现方式

    分布式系统时代,线程并发,资源抢占,"锁" 慢慢变得很重要。那么常见的锁都有哪些?本文就来和大家聊聊Java中13种锁的实现方式,感兴趣的可以了解一下
    2022-08-08
  • Hibernate双向多对多映射关系配置代码实例

    Hibernate双向多对多映射关系配置代码实例

    这篇文章主要介绍了Hibernate双向多对多映射关系配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java设计模式之观察者模式_动力节点Java学院整理

    Java设计模式之观察者模式_动力节点Java学院整理

    这篇文章给大家介绍流量java设计模式之观察者模式,定义对象间一种一对多的依赖关系,使得当每一个对象改变状态。下面通过类图和实例代码给大家介绍java设计模式之观察者模式,感兴趣的朋友一起看看吧
    2017-08-08

最新评论