Spring Boot中application配置文件的生效顺序

news2025/1/12 19:43:51

Spring Boot的一个重要特性就是它的自动配置,这一特性在很大程度上依赖于名称为application的配置文件。本文将详细介绍在Spring Boot中,这些配置文件的加载顺序以及每份文件的应用范围。

在这里插入图片描述


文章目录

    • 配置文件的种类
    • 配置文件的加载顺序
    • 配置文件的环境切换

配置文件的种类

在Spring Boot中,我们主要使用两种类型的配置文件:

  1. application.properties
  2. application.yml

这两种文件都用于定义项目的配置参数,只是书写格式不同。其中,application.properties采用“键=值”的格式,而application.yml采用了YAML(YAML Ain’t Markup Language)语言的格式,设置更为清晰和明了。

配置文件的加载顺序

当项目启动时,Spring Boot会按照一定的顺序去加载这些配置文件。以下是这些配置文件的默认加载顺序:

  1. 在当前目录下的/config子目录的application配置文件
  2. 在当前目录下的application配置文件
  3. 在类路径(classpath)下的/config子目录的application配置文件
  4. 在类路径(classpath)下的application配置文件

其中,列表中序号越小的配置文件优先级越高。也就是说,如果在不同的application配置文件中定义了相同的属性,那么,优先级更高的配置文件中定义的值会覆盖优先级较低的配置文件中定义的值。

配置文件的环境切换

除了主要的application配置文件之外,我们还可以为每个环境提供专门的配置文件。这些环境特定的配置文件的名称格式为application-{profile}.properties或application-{profile}.yml,其中的{profile}表示特定的环境。例如,我们可以为开发环境定义一个application-dev.properties文件,为生产环境定义一个application-prod.properties文件。

与普通的配置文件一样,环境特定的配置文件也有一定的加载顺序,但它们的加载时机是在对应的application配置文件加载之后。也就是说,如果环境特定的配置文件中定义了与application配置文件相同的属性,那么环境特定的配置文件中的值将会覆盖application配置文件中的值。

参考资源:

  1. Config file processing in Spring Boot 2.4
  2. Order of Configuration in SpringBoot
  3. Spring Boot Externalized Configuration

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1524085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes学习总结

kubernetes学习大纲 kubernetes的发展历程 Kubernetes的组件和架构 Kubernetes API对象基本组成 Kubernetes中的yml详解1 Kubernetes中的yml详解2 Deployment与Service

运用html相关知识编写导航栏和二级菜单

相关代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

手机网络连接性能API接口:查询手机网络连接性能状态

手机在网状态查询服务是一项非常方便的服务&#xff0c;可以帮助我们随时了解一个手机号码的在网状态。不论是查询自己的手机号码&#xff0c;还是查询他人的手机号码&#xff0c;这个服务都可以帮助我们获取准确的信息。今天&#xff0c;我想和大家介绍一个非常好用的手机在网…

如何遍历map

小王学习录 前言遍历map集合1. 使用for-each循环遍历 entrySet()2. 使用迭代器遍历 entrySet()3. 通过 keySet() 遍历4. 使用迭代器遍历 keySet()5. 仅遍历 values() 如果只关心map中的值而不关心键&#xff0c;可以遍历 values()&#xff1a;6. 使用流(Streams)进行遍历 总结 …

HarmonyOS(鸿蒙)不再适合JS语言开发

ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上&#xff0c;对TS的动态类型特性施加更严格的约束&#xff0c;引入静态类型。同时&#xff0c;提供了声明式UI、状态管理等相应的能力&#xff0c;让开发者可以以更简洁、…

SpringMVC03 基础操作续与几个简单的交互

前文 第一篇 第二篇 基础操作 上篇博客我们知道了如何获取Session内容以及传输数组,json,对象,集合等的传送和获取 这节课我们可以从上篇的结束开始,其实Spring对Session进行了进一步的封装,我们可以使用其他的方式也可以读取和设置Session(更简洁的方式) 1.直接使用HTTPSessio…

力扣hot100:34. 在排序数组中查找元素的第一个和最后一个位置(二分查找的理解)

我们知道使用二分查找能找到值所在的位置。假如我们在找到值后仍然不断的更新指针会发生什么&#xff1f;我们可以利用这一点来找到最左边的以及最右边的值。 如果当nums[mid]target时&#xff0c;使得 rightmid-1&#xff0c;那么最终会使得target在right的右边。 如果当nums[…

Cloudways搭建WordPress外贸独立站完整教程

现在做个网站不比从前了&#xff0c;搭建网站非常的简单&#xff0c;主要是由于开源的CMS建站系统的崛起&#xff0c;就算不懂编程写代码的人也能搭建一个自己的网站&#xff0c;这些CMS系统提供了丰富的主题模板和插件&#xff0c;使用户可以通过简单的拖放和配置操作来建立自…

【Linux】基础 IO(文件描述符)-- 详解

一、前言 1、文件的宏观理解 文件在哪呢&#xff1f; 从广义上理解&#xff0c;键盘、显示器、网卡、声卡、显卡、磁盘等几乎所有的外设都可以称之为文件&#xff0c;因为 “Linux 下&#xff0c;一切皆文件”。 从狭义上的理解&#xff0c;文件在磁盘&#xff08;硬件&#…

【教学类-44-06】20240318 0-9数字描字帖 A4横版整页(宋体、黑体、文鼎虚线体)

背景需求&#xff1a; 大四班老师要以前的姓名描字帖 【教学类-35-02】20231207大班姓名描字帖&#xff1a;A4单面3*10个姓名&#xff0c;双面共60个名字-CSDN博客文章浏览阅读402次&#xff0c;点赞5次&#xff0c;收藏8次。【教学类-35-02】20231207大班姓名描字帖&#xf…

前端学习之css样式 背景样式、字体样式、列表样式、边框样式、内外边距元素属性的转换

背景样式 html文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>背景样式</title><link rel"stylesheet" href"../css/3.1背景样式.css"> </head> <bo…

MyBatis3源码深度解析(十三)MyBatis的核心组件(二)

文章目录 前言4.3 Configuration组件4.3.9 mappedStatements4.3.10 Configuration组件的其它属性 4.4 Executor4.5 MappedStatement4.6 StatementHandler4.7 TypeHandler4.8 ParameterHandler4.9 ResultSetHandler4.10 小结 前言 MyBatis框架的配置信息有两种&#xff0c;一种…

Flutter开发进阶之使用工具效率开发

Flutter开发进阶之使用工具效率开发 软件开发团队使用Flutter开发的原因通常是因为Flutter开发性能高、效率高、兼容性好、可拓展性高&#xff0c;作为软件PM来说主要考虑的是范围管理、进度管理、成本管理、资源管理、质量管理、风险管理和沟通管理等&#xff0c;可以看到Flu…

OpenCV图像相似性及相似度比对算法

背景 在做图像处理或者计算机视觉相关的项目的时候&#xff0c;很多时候需要我们对当前获得的图像和上一次的图像做相似性比对&#xff0c;从而找出当前图像针对上一次的图像的差异性和变化点&#xff0c;这需要用到OpenCV中的一些图像相似性和差异性的比对算法&#xff0c;在O…

Java零基础入门-如何代码模拟斗地主洗牌发牌动作(上)?

一、本期教学目标 掌握map集合常用方法。掌握map集合使用场景。通过map集合实现斗地主洗牌发牌动作。 二、前言 对于双列集合之map集合&#xff0c;它的相关知识点及拓展咱们都已经差不多学完了。接下来&#xff0c;就是带着大家如何灵活运用map进行一个实战教学&#xff0c;…

【方法封装】时间格式化输出,获取请求设备和IP

目录 时间类 1.1 获取当前时间&#xff0c;以特定格式化形式输出 1.2 自定义时间&#xff0c;以特定格式化输出 1.3 获取当前时间&#xff0c;自定义格式化 1.4 自定义时间&#xff0c;自定义格式化 设备类 根据请求头信息&#xff0c;获取用户发起请求的设备 请求IP类 …

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:TabContent)

仅在Tabs中使用&#xff0c;对应一个切换页签的内容视图。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明&#xff1a; 可内置系统组件和自定义组件&#xff0c;支…

【SpringCloud微服务实战08】RabbitMQ 消息队列

MQ异步通信优缺点: 优点: 吞吐量提升:无需等待订阅者处理完成,响应更快速 故障隔离:服务没有直接调用,不存在级联失败问题 调用间没有阻塞,不会造成无效的资源占用 耦合度极低,每个服务都可以灵活插拔,可替换 流量削峰:不管发布事件的流量波动多大,都由Broker接收,…

终止代码: DRIVER IRQL NOT LESS OR EQUAL 失败的操作:Netwtw12.sys

蓝屏警告&#xff1a; 今天电脑浏览器用着用着就蓝屏重启&#xff0c;蓝屏上报这个错误&#xff1a; 上网找了一堆&#xff0c;发现关键是这句话&#xff1a;“失败的操作:Netwtw12.sys” 最终在一顿操作下&#xff0c;发现了是23年更新的网卡&#xff08;Intel(R) Wi-Fi6E A…

搜维尔科技:工作室选择 OptiTrack 进行新的虚拟制作舞台

35North Studios 成立于 2020 年&#xff0c;是一家最先进的制作工作室。他们的全方位服务方法可帮助电影制片人和企业在一个设备齐全且先进的地点规划、拍摄、编辑、评分和完成项目。该工作室位于爱荷华州克利尔湖&#xff0c;为创作者提供了一个安静的空间&#xff0c;让他们…