SpringBoot中加载配置文件的优先级

在Spring Boot中,加载配置文件的优先级按照以下顺序进行,后续的配置会覆盖之前的配置:

  1. 默认属性:这些属性在Spring Boot本身中定义,并且通常是不可变的。它们作为后备值。

  2. 应用程序属性 :这些属性在应用程序的 application.propertiesapplication.yml 文件中定义。它们提供了默认的配置。

  3. 特定配置文件属性 :这些属性在特定于活动Spring配置文件的 application-{profile}.propertiesapplication-{profile}.yml 文件中定义,其中 {profile} 对应于活动的Spring配置文件。当相应的配置文件处于活动状态时,这些属性将覆盖默认属性。

  4. 配置服务器属性:这些属性是从Spring Cloud配置服务器获取的。它们会覆盖应用程序本地配置文件中定义的属性。

如果一个属性在多个位置定义,则最后应用的属性会覆盖之前的属性。因此,如果一个属性在 application.propertiesapplication-dev.properties 中都定义了,当 dev 配置文件处于活动状态时,application-dev.properties 中的值将覆盖 application.properties 中的值。

类似地,如果一个属性同时在本地配置文件(application.propertiesapplication-dev.properties)中定义,并且从配置服务器中获取,则配置服务器中的值会覆盖本地值。

总而言之,优先级顺序为:

  1. 默认属性
  2. 应用程序属性
  3. 特定配置文件属性
  4. 配置服务器属性
相关推荐
heartbeat..6 分钟前
Java 微服务初学者入门指南(CSDN 博客版)
java·运维·微服务·学习笔记·入门
一 乐1 小时前
健身房预约|基于java+ vue健身房预约小程序系统(源码+数据库+文档)
java·vue.js·spring boot·小程序·论文·毕设·健身房预约小程序
xdpcxq10291 小时前
Flask - 常见应用部署方案
后端·python·flask
望舒5131 小时前
代码随想录day32,动态规划part1
java·算法·leetcode·动态规划
Ivanqhz1 小时前
数据流分析的核心格(Lattice)系统
开发语言·javascript·后端·python·算法·蓝桥杯·rust
麻辣香蝈蝈1 小时前
【入门】职场如何沟通以及开发一个功能
java
键盘鼓手苏苏1 小时前
Flutter for OpenHarmony 实战:Flutter Rust Bridge — 极致计算性能方案
开发语言·后端·flutter·华为·rust·json·harmonyos
he___H1 小时前
jvm41-47回
java·开发语言·jvm
骑猪撞地球QAQ1 小时前
Java在导出excel时中添加图片导出
java·开发语言·excel
好家伙VCC1 小时前
# 发散创新:基于 Go 语言打造高性能服务网格的实践与突破在微服务架构
java·python·微服务·架构·golang