SpringBoot Properties & YML文件的优先级

SpringBoot在启动时,加载配置文件的优先级包括:Java-jar的spring.config.location高于spring.profiles.active;项目路径下config目录优于项目根目录;Eclipse启动参数;src/main/resources下的配置。未指定加载文件时,会查找不同位置的application.properties和application.yml,且配置文件中的spring.profiles.active用于激活特定环境的配置。
摘要由CSDN通过智能技术生成


SpringBoot加载文件时两个默认前提:

  1. 指定路径优先于默认配置

  2. 外部【项目】大于内部【Jar】

  3. config相对于其它路径优先

  4. properties相对于yml优先

运行时指定加载文件时,最高

Java jar spring.config.location优先于spring.profiles.active

如下情况,spring.config.location有效,而spring.profiles.active无效。

java -jar SpringTest-3.0.jar 
--spring.profiles.active=test 
--spring.config.location=C:/D/coding/codespace/SpringTest/application.yml

Java -jar 三种语法

java -jar SpringTest-3.0.jar --spring.config.location=C:/D/coding/codespace/SpringTest/application.yml
java -jar -Dspring.profiles.active=prod application.jar

或者
与Eclipse里配置相同-spring.profiles.active

java -jar SpringTest-3.0.jar --spring.profiles.active=test

运行时不指定加载文件时,其次

1.项目路径下的config目录优先级最高—1

项目config目录和项目根目录下的application-xxx.properties文件,无关乎命名,全部加载。
其中config的优先级要大于项目路径下的文件。
在这里插入图片描述
但是application.xml就不能随便命名,否则默认不会加载。
在这里插入图片描述

2.项目路径的优先级其次—2

  1. Project/config/application.yml
  2. Project/application.yml

3.Eclipse 设置的启动参数 —3

如果在Eclipse的Java Application中设置了启动参数,优先级其次。
这个非常重要,调试时需要留意此处是否做了配置。
当然,部署jar时无关乎Eclipse的设置,在R&D时这个设置有效。
在这里插入图片描述

4.src/man/resources最后 —4

4.1application.properties 4—1

4.2config 和 application.yml 4—2

如果application.yml 不设置spring.profiles.active
  1. config
  2. Tomcat默认端口8080
如果application.yml 设置spring.profiles.active
  1. spring.profiles.active激活类型文件,同时properties 优先于 yml文件
  2. config不再起作用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值