SpringBoot配置文件(格式及加载顺序详解)

SpringBoot配置文件(格式及加载顺序详解)-mikechen

SpringBoot配置文件概述

通常情况SpringBoot默认配置文件为application.properties或者或者application.yml文件。

实际使用时还需要有application-dev.properties(开发环境使用)以及application-prod.properties(生产环境使用)。

 

SpringBoot配置文件格式

Spring Boot 官方提供了两种常用的配置文件格式,分别是:

1.properties格式

application.properties

2.yml格式

application.yml

这两个文件本质是一样的,区别只是其中的语法略微不同,相比于properties来说,yml更加年轻,层级也是更加分明。

 

springboot配置文件加载顺序

SpringBoot项目启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的默认配置文件。

比如:下面我以application.properties配置文件为例。

application.properties可以放置四个位置,优先级从1到4依次递减。

file:./config/ ( 项目根路径下的config文件夹)
file:./  (项目根路径)
classpath:/config/ (类路径下的config文件夹)
classpath:/ (类路径)

如下图所示:
SpringBoot配置文件(格式及加载顺序详解)-mikechen
优先级由高到底,高优先级的配置会覆盖低优先级的配置。

所以说,我们平时通过IDEA创建的SpringBoot工程在resource目录下自动生成的配置文件,优先级最低。

注意:第1优先级中的config目录必须存在子目录,否则会异常。

如下所示:

15:04:31.871 [main] ERROR org.springframework.boot.SpringApplication - Application run failed,java.lang.IllegalStateException: No subdirectories found for mandatory directory location 'file:./config/*/'.

 

SpringBoot定制配置文件

通过 spring.config.location还可以定制application.properties配置文件的位置。

注意:定制放置位置的配置文件优先级高于上述四个默认位置配置文件​。

java -jar demo-1.0.0-SNAPAHOT.jar --spring.config.location=classpath:/felixzh/

SpringBoot配置文件(格式及加载顺序详解)-mikechen

定制配置文件文件名称

通过spring.config.name可以定制配置文件的文件名​:

java -jar demo-1.0.0-SNAPAHOT.jar --spring.config.name=MyApp.properties

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法