SpringBoot配置文件加载顺序详解

1、存放目录Application属性文件,按优先级排序,位置高的将覆盖位置
当前项目目录下的一个/config子目录
当前项目目录
【SpringBoot配置文件加载顺序详解】项目的resources即一个classpath下的/config包
项目的resources即classpath根路径(root)

SpringBoot配置文件加载顺序详解

文章插图
 
2、读取顺序如果在不同的目录中存在多个配置文件,它的读取顺序是:
1、config/application.properties(项目根目录中config目录下)2、config/application.yml3、application.properties(项目根目录下)4、application.yml5、resources/config/application.properties(项目resources目录中config目录下)6、resources/config/application.yml7、resources/application.properties(项目的resources目录下)8、resources/application.yml3、配置文件的生效顺序,会对值进行覆盖@TestPropertySource 注解
命令行参数
JAVA系统属性(System.getProperties())
操作系统环境变量
只有在random.*里包含的属性会产生一个RandomValuePropertySource
在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)
在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)
在@Configuration类上的@PropertySource注解
默认属性(使用SpringApplication.setDefaultProperties指定)
4、配置随机值roncoo.secret={random.value} roncoo.number={random.int}roncoo.bignumber={random.long} roncoo.number.less.than.ten={random.int(10)}roncoo.number.in.range=${random.int[1024,65536]}读取使用注解:@Value(value = https://www.isolves.com/it/cxkf/bk/2019-11-21/"${roncoo.secret}")注:出现黄点提示,是要提示配置元数据,可以不配置
5、属性占位符当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)
roncoo.name = www.roncoo.com
roncoo.desc = ${roncoo.name} is a domain name
6、其他配置的介绍端口配置
server.port=9090时间格式化spring.jackson.date-format=yyyy-MM-dd HH:mm:ss时区设置spring.jackson.time-zone=Asia/Chongqing



    推荐阅读