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. 配置服务器属性
相关推荐
Frostnova丶5 小时前
LeetCode 190.颠倒二进制位
java·算法·leetcode
闻哥6 小时前
Redis事务详解
java·数据库·spring boot·redis·缓存·面试
hrhcode6 小时前
【Netty】五.ByteBuf内存管理深度剖析
java·后端·spring·springboot·netty
道亦无名6 小时前
aiPbMgrSendAck
java·网络·数据库
发现你走远了7 小时前
Windows 下手动安装java JDK 21 并配置环境变量(详细记录)
java·开发语言·windows
心 -7 小时前
java八股文DI
java
NEXT067 小时前
后端跑路了怎么办?前端工程师用 Mock.js 自救实录
前端·后端·程序员
泯泷7 小时前
提示工程的悖论:为什么与 AI 对话比你想象的更难
人工智能·后端·openai
黎雁·泠崖7 小时前
Java常用类核心详解(一):Math 类超细讲解
java·开发语言
大尚来也7 小时前
跨平台全局键盘监听实战:基于 JNativeHook 在 Java 中捕获 Linux 键盘事件
java·linux