当前位置: 首页 > java >正文

SpringBoot外部化配置

外部化配置(Externalized Configuration)是指将应用的配置从代码中剥离出来,放在外部文件或环境中进行管理的一种机制。

通俗地说,就是你不需要在代码里写死配置信息(比如数据库账号、端口号、日志级别等),而是把这些配置信息放在配置文件、命令行、环境变量等外部载体里。这样,你可以在不修改源码的情况下,就改变应用行为。

SpringBoot的外部化配置方式,包括但不限于

1.application.properties或者yml或者yaml文件

2.系统环境变量

3.JVM参数

4.命令行参数

......

优先级

声明:测试版本为SpringBoot,各版本关于application.properties或者yaml或者yml的优先级可能有所变动

1.application.properties或者yml或者yaml文件优先级

说明:配置在SpringBoot项目的resources下的application.properties或者yaml或者yml这属于内部化配置,其实SpringBoot应用程序默认是先去找外部化配置.也就是说会先去找外部的application.properties或者yaml或者yml

1.1)内部化配置application的优先级别

此时的运行结果  也就是说application.properties的优先级最高

当resources下有config文件夹之后

运行结果  也就是说application.properties/yaml/yml 内部化时候 resources/config中的application.properties优先级最高

1.2).外部化配置application的优先级别

首先我保留内部化的所有application

开始运行项目

证明了外部化配置application.properties/yaml/yml优先级高于内部化配置

2.系统环境变量

这里以临时设置环境变量来证明,环境变量的优先级别高于外部配置的application.properties/yaml/yml

重新打开cmd窗口

证明环境变量优先级别高于外部application配置

3.JVM参数

执行结果

证明JVM参数优先级高于环境变量

4.命令行参数(注意命令行参数不同于JVM参数)

执行结果

证明命令行参数执行优先级最高

注意

java -Dserver.port -jar demo.jar --server.port

1. JVM 参数必须以 -D 开始

2. JVM 参数必须写在 java 命令之后、-jar 之前

3. -jar 必须写在要启动的 .jar 文件之前

4. --命令行参数 必须写在 .jar 文件之后

优先级排名

1.命令行参数优先级最高

2.JVM参数优先级其次

3.环境变量

4.外部application.properties/yaml/yml

如何改变配置文件名字呢???

spring.config.location

spring.config.name   剩下自己参考

http://www.xdnf.cn/news/7786.html

相关文章:

  • NIFI的处理器:ExecuteGroovyScript 2.4.0
  • 第14天-Matplotlib实现数据可视化
  • ollama使用gpu运行大模型
  • Xilinx 7Series\UltraScale 在线升级FLASH STARTUPE2和STARTUPE3使用
  • Java 定时任务中Cron 表达式与固定频率调度的区别及使用场景
  • 唯创安全优化纸业车间安全环境:门口盲区预警报警器的应用与成效
  • STL中的Vector(顺序表)
  • RabbitMQ——消息确认
  • NLP学习路线图(三): 微积分(梯度、导数等)
  • 有没有其他影视app可以像群晖video station一样可以被Windows的本地网络驱动器找到
  • 【Vue3】数据的返回和响应式处理(ref reactive)
  • 自建srs实时视频服务器支持RTMP推流和拉流
  • Kotlin 极简小抄 P8(不可空类型、可空类型、注意事项、非空断言 !!)
  • 什么是endpoints?
  • php://filter的trick
  • Server-Driven UI:Kotlin 如何重塑动态化 Android 应用开发
  • 《算法笔记》12.1小节——字符串专题->字符串hash进阶 问题 A: 求最长公共子串(串)
  • 代码随想录打卡|Day45 图论(孤岛的总面积 、沉没孤岛、水流问题、建造最大岛屿)
  • ARM反汇编浅析
  • 【JAVA】比较器Comparator与自然排序(28)
  • Flannel后端为UDP模式下,分析数据包的发送方式(一)
  • 【react18】在styled-components中引入图片报错
  • 项目中Warmup耗时高该如何操作处理
  • 深度解析 Java 中介者模式:重构复杂交互场景的优雅方案
  • 详解 C# 中基于发布-订阅模式的 Messenger 消息传递机制:Messenger.Default.Send/Register
  • 服务器网络配置 netplan一个网口配置两个ip(双ip、辅助ip、别名IP别名)
  • Java详解LeetCode 热题 100(18):LeetCode 73. 矩阵置零(Set Matrix Zeroes)详解
  • 广州卓远VR受邀参加2025智能体育典型案例调研活动,并入驻国体华为运动健康联合实验室!
  • 深入解析异步编程:Java NIO、Python `async/await` 与 C# `async/await` 的对比
  • junit单元测试