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   剩下自己参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hrui0706

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值