Spring Boot简明教程--Spring Boot 配置文件加载顺序

配置文件介绍

大家都知道默认生成的SpringBoot项目在resource目录下包含一个名为application.properties的配置文件,为了方便有时会将其改为application.yml。但不管是哪个作用都是相同的:Spring的全局配置文件。其作用是对一些默认配置的配置值进行修改。

加载位置

SpringBoot在程序运行的时候会从5个位置自动寻找并加载application.properties或application.yaml:

  • Immediate child directories of the /config subdirectory,项目根目录下config的直接子目录下(如/config/app/application.yml)
  • The /config subdirectory in the current directory,项目根目录的config目录下
  • The current directory,项目根目录下
  • The classpath /config package,resource的config目录下
  • The classpath root,resource目录下

以上五个位置中的application.yml文件的优先级按照上面列出的顺序依次降低。即如果同一个属性在五个文件中都出现了,以优先级高的为准。官方是根据优先级从低到高依次排序的。


image.png

配置文件名

application.yaml是不是必须叫application.yaml这个名字呢?当然不是必须的。开发者可以自己定义yaml名字,自己定义的话,需要在项目启动时用spring.config.name指定配置文件的名字

这样在项目启动时将按照上面所列出的位置按顺序去查找名为app.yml的文件。
同理environment property也是可以修改配置文件加载的位置的,配置后优先级高于上面列出的五个位置。
如果是在项目部署阶段可以使用以下语句:
java -jar myproject.jar --spring.config.name=myproject
java -jar myproject.jar --spring.config.location=optional:classpath:/default.properties,optional:classpath:/override.properties

参考文档

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

你可能感兴趣的:(Spring Boot简明教程--Spring Boot 配置文件加载顺序)