您现在的位置是:首页 >其他 >SpringBoot Properties & YML文件的优先级网站首页其他

SpringBoot Properties & YML文件的优先级

MyFreeIT 2024-06-14 17:19:22
简介SpringBoot Properties & YML文件的优先级


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不再起作用
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。