欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。
SpringBoot配置文件可以使用yml
格式和properties
格式
分别的默认命名为:application.yml、application.properties 官网都是以yml作为参考,层级结构更清晰的一种配置文件。
–file:./config/
–file:./
–classpath:/config/
–classpath:/
SpringBoot配置文件默认可以放到以下目录中,下面四种可以自动读取到:
1、项目根目录下
2、项目根目录中config目录下
3、项目的resources目录下
4、项目resources目录中config目录下
以上的application.properties优先级都要大于application.yml的哈,然后再按照那个顺序。
如果在不同的目录中存在多个配置文件,它的读取顺序是:
1、config/application.properties(项目根目录中config目录下)
2、config/application.yml
3、application.properties(项目根目录下)
4、application.yml
5、resources/config/application.properties(项目resources目录中config目录下)
6、resources/config/application.yml
7、resources/application.properties(项目的resources目录下)
8、resources/application.yml
注意
1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。
2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1次读取到的,后面读取的不覆盖前面读取到的。
3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”
如果是其他名称的配置文件也可以在启动的时候配置:--spring.config.name = aaa
来加载aaa
配置文件,或者通过--spring.config.location
来加载不同目录的配置文件。在初期需要根据 spring.config.name
和 spring.config.location
决定加载哪个文件,所以它们必须定义为environment
属性(通常为OS env,系统属性或命令行参数 )或者我们可以通过springboot
的main
里面写代码或者是注解来实现指定配置,多种多个配置文件的效果。