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. 配置服务器属性
相关推荐
ITender4 分钟前
Nacos 迁移引发 Full GC 问题深度分析
后端·面试
Gatlin5 分钟前
逆向学习:我为什么放着文档不看,直接读字节码
后端
我不是外星人5 分钟前
一键还原任意网站,这套 Playwright + 多 Agent 工程流太猛了
前端·后端·ai编程
济*沧*海9 分钟前
Set集合深度解析:原理、特性与应用场景全攻略
java
geovindu9 分钟前
java: Singleton Pattern
java·开发语言·后端·单例模式·设计模式·创建型模式
Nturmoils12 分钟前
JOIN 不是拼上就完事,多表查询这几个坑先跑一遍
数据库·后端
IT_陈寒31 分钟前
Vue的v-if和v-show,我竟然用错了这么久
前端·人工智能·后端
一路向北North32 分钟前
Spring Security OAuth2.0(16):密码模式
java·后端·spring
水无痕simon33 分钟前
5 多表操作
java·开发语言·数据库
大P哥阿豪36 分钟前
Go panic & recover:深入Go语言的异常拯救之道
开发语言·后端·golang·go