springboot配置文件关系及加载顺序

1. 配置文件的作用
application.yml作用:这是项目的 默认配置文件,通常包含通用的基础配置。它适用于所有环境(如开发、测试、生产等),提供全局的默认值。application-prod.yml作用:这是一个 环境特定的配置文件,用于定义针对某种特定环境(如生产环境)的配置。文件名中的 prod 表示生产环境(Production),类似的还有 dev(开发环境)、test(测试环境)等。2. 加载顺序与优先级Spring Boot 的配置文件加载遵循一定的规则,主要基于 profiles(环境配置)的概念。以下是加载顺序和优先级的详细说明:
加载顺序application.yml:Spring Boot 会首先加载 application.yml,作为默认的全局配置。这些配置会被应用于所有环境。application-{profile}.yml:如果指定了某个 profile(比如 prod),Spring Boot 会加载对应的配置文件(如 application-prod.yml)。这些配置会覆盖 application.yml 中相同名称的配置项。优先级高优先级覆盖低优先级:具体来说,application-prod.yml 中的配置会覆盖 application.yml 中的同名配置。这种机制允许为不同环境定制化配置,而无需修改全局默认配置。3. 如何指定 Profile在 Spring Boot 中,可以通过多种方式指定当前使用的 profile:
方式 1: 在 application.yml 中指定spring:profiles:active: prod这里指定了激活的 profile 为 prod,Spring Boot 会加载 application-prod.yml。方式 2: 命令行参数启动应用时,通过命令行参数指定 profile:java -jar app.jar --spring.profiles.active=prod方式 3: 环境变量设置环境变量来指定 profile:export SPRING_PROFILES_ACTIVE=prod方式 4: JVM 参数通过 JVM 参数指定 profile:java -Dspring.profiles.active=prod -jar app.jar4. 示例分析假设我们有以下两个配置文件:
application.ymlserver:port: 8080spring:datasource:url: jdbc:mysql://localhost:3306/default_dbusername: rootpassword: rootapplication-prod.ymlserver:port: 8081spring:datasource:url: jdbc:mysql://prod-db-host:3306/prod_dbusername: prod_userpassword: prod_password运行结果如果没有指定 profile,默认使用 application.yml:server.port = 8080数据库连接信息为 default_db。如果指定了 prod profile(例如通过 --spring.profiles.active=prod):server.port = 8081(application-prod.yml 覆盖了 application.yml 的端口配置)。数据库连接信息为 prod_db(application-prod.yml 覆盖了 application.yml 的数据库配置)。5. 配置文件的合并逻辑Spring Boot 在加载配置文件时,会将多个配置文件的内容进行合并,具体规则如下:基础配置 (application.yml):先加载 application.yml,作为全局默认配置。环境特定配置 (application-{profile}.yml):根据激活的 profile,加载对应的配置文件。如果某个配置项在 application-{profile}.yml 中存在,则覆盖 application.yml 中的同名配置项。未覆盖的配置项:如果某个配置项只存在于 application.yml 中,而未在 application-{profile}.yml 中定义,则保留 application.yml 的值。6. 总结application.yml:提供全局默认配置,适用于所有环境。优先级较低,容易被环境特定配置覆盖。application-prod.yml:提供针对生产环境的特定配置。优先级较高,会覆盖 application.yml 中的同名配置项。加载顺序:先加载 application.yml,再根据激活的 profile 加载对应的 application-{profile}.yml。推荐实践:将通用配置放在 application.yml 中。将环境特定的配置放在 application-{profile}.yml 中,避免硬编码敏感信息或环境相关参数。

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

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

相关文章

绩效面谈中的优质提问(一)

好的绩效面谈需要上级和下属之间进行良好的对话。双方都有重要的信息要提供给对方,优秀的绩效面谈的问题与收集他们的反馈一样重要。这些员工绩效面谈问题可用于获取有关员工工作方式、与其评估相关的特定事件以及员工…

简单博弈

巴什博弈问题:\(2\) 人玩游戏,共有 \(n\) 个石子,每人每次可以取 \([1,k]\) 个石子,最后一次取石子的人获胜,问先手何时必胜?结论:巴什博弈先手必败,当且仅当 \((k+1)\mid n\),否则先手必胜。 证明:分类讨论…

PolarFire SOC Auto Update 和 IAP 文档阅读一 AUTO recovery

PolarFire SOC Auto Update 和 IAP 文档阅读一 AUTO recovery 文档来自:PolarFire FPGA and PolarFire SoC FPGA Programming User GuidePolarFire SOC Auto Update 和 IAP 文档阅读一 - 所长 - 博客园 PolarFire SO…

网站建设及seo黄骅港项目中标结果

背景 最近面对一个庞大的项目,但是只需要修改某个模块,每次都手搓命令太麻烦了,于是就想着能不能写个脚本来辅助处理这些事情。 解决方案 定制化一键 ESLint,执行文件下载地址: https://github.com/mazeyqian/go-g…

从 “纸笔清单” 到全栈引擎:数据填报与类 Excel 控件如何重塑企业效率曲线 - 详解

从 “纸笔清单” 到全栈引擎:数据填报与类 Excel 控件如何重塑企业效率曲线 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

触摸IC原厂 VKD223EB是一款低电流1通道触控1按键触摸芯片 HBM静电大于5KV

VKD223EB是单通道触摸检测芯片,功耗低、工作电压范围宽以及稳定的触摸检测效果可以广泛的满足不同应用的需求,此触摸检测芯片是专为取代传统按键而设计,内建稳压电路,提供稳定电压给触摸检测电路使用,触摸检测PAD的大…

09_五大IO模型

要深入的理解各种IO模型,那么必须先了解下产生各种IO的原因是什么,要知道这其中的本质问题那么我们就必须要知道一条消息是如何从一个人发送到另外一个人的。以两个应用程序通讯为例,我们来了解一下当“A”向"…

wsl Ubuntu 使用cmake

安装cmake及其工具链CMakeLists.txt编写规范 略 构建与编译流程 生成makefile点击查看代码 mkdir build && cd build cmake ..此步骤会根据CMakeList.txt生成平台相关的构建文件 编译项目 执行make命令生成目标…

黄龙云 加强网站建设网络营销方案如何写

元类在测试框架中的运用 书接上回 我们知道了元类的基本用法,也写了一个小demo,接下来我们就尝试运用进我们测试框架。 #一款无需编码且易用于二次开发的接口测试框架。 #我写的我写的我写的我写的 pip install mwj-apitest #这里面就用到了元类&…

河南小学网站建设养生网站源码下载

不得不说RTL SDR真是神器,直接把SDR的入门门槛拉低到了几十块钱。对于RTL SDR的学习开发,有大佬写的《Software_Defined_Radio_using_MATLAB_Simulink_and_the_RTL-SDR》,另外,除了MATLAB,近些年爆火的PYTHON当然也是可…

AI元人文思想体系:从哲学基础到价值原语博弈的微观机制

AI元人文思想体系:从哲学基础到价值原语博弈的微观机制 图片 AI元人文思想体系:从哲学基础到价值原语博弈的微观机制 引言:时代的岔路口——从工具对齐到主体共生 我们正站在一个文明史的奇点上。通用人工智能(AGI…

做题笔记16

9.24 P8331 [ZJOI2022] 简单题 幽默题 这张图肯定是若干个杏仁拼在一起,证明?随便拿一个杏仁出来,如果我们加边,要么会有一个 \(K_4\) 同胚,要么会有至少一组平行的环,要么仍然是一个杏仁,前面两种情况容易分讨…

条件判断语句

条件判断语句编程的时候经常需要检查一系列的条件,根据判断的条件决定采取什么措施。接下来学习一下IF-ELSE 语句。 1. 条件测试 判断一个表达式是为True或False的行为就是条件测试。 # -*- coding: utf-8 -*- print(…

嵌入式铁头山羊STM32-各章节详细笔记-查阅传送门 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站建设皖icp做网站的价格

​ 2023年9月20~22日,深圳唯创知音电子将在 深圳宝安国际会展中心(9号馆9B1)为您全面展示最新的芯片产品及应用方案,助力传感器行业的发展。 作为全球领先的芯片供应商之一,深圳唯创知音电子一直致力于为提供高质量、…

网站开发与设计期末考试网站优化宝

SD-WAN作为一种先进的网络技术,为企业提供了更加灵活和高效的网络连接方案。然而,在异地组网的过程中,SD-WAN也面临一些挑战。本文将探讨SD-WAN异地组网所面临的难题,并提供相应的解决方案。 挑战一:网络延迟和不稳定性…

网站流量是怎么赚钱的挣钱最快的小游戏

椭圆曲线密码学 (ECC) 是一种基于椭圆曲线数学的公开密钥加密算法。 它提供了一种执行密钥交换、数字签名和加密等加密操作的安全方式。 ECC 为 1977 年首次发布的 Rivest-Shamir-Adleman (RSA) 加密算法提供了一种替代性方案。 继续阅读,进一步了解椭圆曲线密码学…

深入解析:实验室:将 XSS 反映到 HTML 上下文中,大多数标记和属性都被阻止

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …