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

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()注解来执行的,数值越小执行顺序越靠前。

http://www.xdnf.cn/news/4224.html

相关文章:

  • 【硬核数学】0. 序章:万丈高楼平地起,AI数学筑基之旅《从零构建机器学习、深度学习到LLM的数学认知》
  • Java后端开发day42--IO流(二)--字符集字符流
  • 智能学习空间的范式革新:基于AI驱动的自习室系统架构与应用研究
  • 实验三 数据查询
  • Spring AI快速入门
  • QT生成保存 Excel 文件的默认路径,导出的文件后缀自动加(1)(2)等等
  • 如何管理两个Git账户
  • 即开即用,封装 Flask 项目为 exe 文件实操步骤
  • QQ相册下载工具
  • 宁德时代区块链+数字孪生专利解析:去中心化身份认证重构产业安全底座
  • NoUniqueKey问题和Regular join介绍
  • Linux USB Gadget | 框架 / 复合设备实践 / Configfs 配置
  • CSS分栏布局
  • 【T2I】PLACE: Adaptive Layout-Semantic Fusion for Semantic Image Synthesis
  • vue2+element实现Table表格嵌套输入框、选择器、日期选择器、表单弹出窗组件的行内编辑功能
  • CentOS配置了镜像源之后依旧下载元数据失败
  • (二)毛子整洁架构(CQRS/Dapper/DomianEvent Handler)
  • 高效调用京东 API 实战:商品详情页实时数据采集接口开发指南​
  • C++ this关键字
  • python校园二手交易管理系统-闲置物品交易系统
  • ts axios中报 Property ‘code‘ does not exist on type ‘AxiosResponse<any, any>‘
  • PCIe控制逻辑介绍(一)
  • 【C/C++】new关键字解析
  • 说下RabbitMQ的整体架构
  • K-means
  • 一款独立于游戏外的键盘源按键辅助工具他来了
  • C#发送之前转换为JSON格式
  • 美妆集合体验馆的「AI 焕新」:从人工到智能管理的蜕变
  • FPGA设计如何快速入门?(内附学习视频)
  • Kotlin Lambda优化Android事件处理