当前位置:   article > 正文

Spring Boot配置文件顺序学习_springboot配置文件执行顺序

springboot配置文件执行顺序

Spring Boot配置文件顺序学习

1、SpringBoot的总体读取顺序优先级包外大于包内,properties大于yml
2、 SpringBoot的总体读取顺序如下所示:

  • config/application.properties(项目同级目录中config目录下)
  • config/application.yml
  • application.properties(项目同级目录下)
  • application.yml
  • resources/config/application.properties(项目resources目录中config目录下)
  • resources/config/application.yml
  • resources/application.properties(项目的resources目录下)
  • resources/application.yml

项目同级目录,相当于生产环境中的JAR包。
3、配置文件中只要有spring.profiles.active=dev代码程序就会激活。如果该代码在包内,程序会优先读取包外的配置(包外的conf/application-dev.properties->conf/application-dev.yml->application-dev.properties->application-dev.yml)再读取包内的配置。如果配置在包外,很容易理解,就不赘述了。
举个例子,项目包的部署后的目录结构如下:

│─SpringBootTest
│  │  application-dev.properties
│  │  application.properties
│  │  SpringBootDemo-0.0.1-SNAPSHOT.jar
│  └──config
│          application-dev.properties
│          application.yml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

spring.profiles.active=dev代码在包SpringBootDemo-0.0.1-SNAPSHOT.jar中,其他地方没有。经过测试,发现配置文件的优先级如下所示**(数字越小优先级越高)**:

│─SpringBootTest
│  │  application-dev.properties (2)
│  │  application.properties (4)
│  │  SpringBootDemo-0.0.1-SNAPSHOT.jar (5)
│  └──config
│          application-dev.properties (1)
│          application.yml (3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

包外的dev配置读完,再读包外其他配置,最后读包内的配置。

另一个例子,项目包的部署后的目录结构如下:

├─SpringBootTest
│  │  application.properties
│  │  SpringBootDemo-0.0.1-SNAPSHOT.jar
│  └──config
│          application.yml
  • 1
  • 2
  • 3
  • 4
  • 5

spring.profiles.active=dev代码在包SpringBootDemo-0.0.1-SNAPSHOT.jar中,其他地方没有。经过测试,发现配置文件的优先级如下所示**(数字越小优先级越高)**:

├─SpringBootTest
│  │  application.properties (2)
│  │  SpringBootDemo-0.0.1-SNAPSHOT.jar (3)
│  └──config
│          application.yml (1)
  • 1
  • 2
  • 3
  • 4
  • 5

包外的配置读完,再读包内的配置。
综上两个例子,可以知道,即使包内有激活profiles的代码会生效,但如果包外有配置会先读包外的配置,并不会优先读包内的dev配置

4、yml和properties混用容易出问题,最好都用同一种格式。
5、现网都要有外置的配置文件,且需要激活profile,这样可以保证优先读取包外的配置。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/767625
推荐阅读
相关标签
  

闽ICP备14008679号