当前位置: 首页 > news >正文

ApplicationRunner执行顺序问题

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

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

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

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

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

第一个:

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

第二个:

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

第三个:

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

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

相关文章:

  • 深度解读 ARM 全新白皮书——《重塑硅基:AI 时代的新基石》
  • unordered_map和unordered_set的设计
  • 学习alpha,第2个alpha
  • Acrel-EIoT 能源物联网云平台在能耗监测系统中的创新设计
  • Pandas 的透视与逆透视
  • 雅思阅读--句子结构
  • 奇瑞依托汽车产业链,实现服务机器人万台下线
  • 【LeetCode Hot100 | 每日刷题】二叉树的层序遍历
  • 二叉树与堆排序(概念|遍历|实现)
  • [人机交互]理解用户
  • LightGBM算法原理及Python实现
  • 提示词工程:通向AGI时代的人机交互艺术
  • 从零实现基于Transformer的英译汉任务
  • 高并发PHP部署演进:从虚拟机到K8S的DevOps实践优化
  • 机器学习 day6 -线性回归练习
  • 【Part 2安卓原生360°VR播放器开发实战】第三节|实现VR视频播放与时间轴同步控制
  • CentOS虚拟机固定ip以及出现的问题
  • 引用第三方自定义组件——微信小程序学习笔记
  • 【机器学习-线性回归-6】机器学习中的维度:从特征工程到降维艺术
  • DOCX转PDF怎么操作最简单?快速将DOCX转换为专业PDF文档
  • 机器人助力、入境游、演出引流:假期纳客千万人次城市有高招
  • 五一档观众最满意《水饺皇后》
  • 云南禄丰尾矿坍塌事故搜救正在进行,被掩埋的四辆工程车已找到
  • 两个灵魂,一支画笔,意大利艺术伴侣的上海灵感之旅
  • 巴基斯坦宣布禁止与印度的进口贸易
  • 澳大利亚总理阿尔巴尼斯率领工党赢得2025年联邦选举