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

Springboot配置文件加载顺序(含Nacos配置)

内部配置

在标准的 SpringBoot 应用中,系统配置文件加载顺序如下:

  1. bootstrap.yaml
  2. bootstrap.yml
  3. bootstrap.properties
  4. bootstrap-{profile}.yaml
  5. bootstrap-{profile}.yml
  6. bootstrap-{profile}.properties
  7. application.yaml
  8. application.yml
  9. application.properties
  10. application-{profile}.yaml
  11. application-{profile}.yml
  12. application-{profile}.properties
  13. nacos 配置中心共享配置(通过 spring.cloud.nacos.config.shared-configs 指定)
    如:project-common.yaml
  14. nacos 配置中心该服务配置(通过 spring.cloud.nacos.config.prefix 和 spring.cloud.nacos.config.file-extension 指定)
    如:project-service-ext.yaml
  15. nacos 配置中心该服务-{profile} 配置(通过 spring.cloud.nacos.config.prefix 和spring.cloud.nacos.config.file-extension、以及 spring.profiles.active 指定)
    如:project-auth-dev.yaml

优先级低的配置会被先加载,从上往下优先级逐渐增高,
后加载的配置会覆盖掉已存在的相同配置。

同时,相同类型配置下的配置优先级如下:
properties(最高)> yml > yaml(最低)

外部配置

基于外部配置命令或外部配置文件启动项目时,配置的优先级如下:

  1. 命令行参数
  2. 来自Java系统属性(System.getProperties())的属性
  3. 操作系统环境变量
  4. jar 同级目录的 config 目录的子文件夹
  5. jar 同级目录的 config 目录的子文件
  6. jar 同级目录的配置文件
  7. 项目内配置文件:参考“内部配置”
  8. 在 @Configuration 类上通过 @PropertySource 注解指定的属性文件
  9. 在代码中通过 @Value 或 @ConfigurationProperties 等注解设置的默认值
  10. 默认属性

命令行配置

springboot 启动命令行参数可由 -D-- 指定,这两种配置的区别如下:

  1. -D 为虚拟机参数,放在 -jar 之前,可以使用 properties 方法获取
  2. -- 为运行参数,放在 xx.jar 之后,springboot 将自动解析为对应配置

示例:

java -Dserver.port=8888 -jar app.jar --spring.config.location=/app/application.yml

java -jar app.jar --server.port=8888 --spring.config.location=/app/application.yml

http://www.kler.cn/a/459627.html

相关文章:

  • 深入理解连接池:从数据库到HTTP的优化之道
  • MySQL 锁那些事
  • Linux(Ubuntu)下ESP-IDF下载与安装完整流程(2)
  • 什么是事件循环(Event Loop)?请谈谈它在 JavaScript 中的作用?
  • 2024年总结与展望
  • 机器学习随机森林回归时间序列预模型中时间滑动窗口作用以及参数设置
  • 自动驾驶第一股的转型迷途:图森未来赌上了AIGC
  • 论文阅读《Cross-scale multi-instance learning for pathological image diagnosis》
  • xtuoj 等式
  • python读写文件的三种做法
  • FPGA多路红外相机视频拼接输出,提供2套工程源码和技术支持
  • 【Leetcode 热题 100】17. 电话号码的字母组合
  • 【Golang 面试题】每日 3 题(九)
  • BLIP论文笔记
  • w124中药实验管理系统
  • PySide6 SQLite3 做的 电脑组装报价系统
  • 玩转OCR | 腾讯云智能结构化OCR初体验
  • 区块链期末复习3:跨链原子交换其他加密货币
  • java—网络编程TCP和UDP
  • 探索RAG(检索增强生成):三大RAG技术的特点与应用场景
  • 分子动力学中优化算法和积分算法
  • CountDownLatch 和 CyclicBarrier
  • 【最新】西陆房产系统源码+uniapp全开源+环境教程
  • 【Logback详解】
  • 《代码随想录》Day17打卡
  • JVM 性能监控工具之命令行篇