记录折腾的那点事
在折腾的道路上永不止步

SpringBoot配置文件加载顺序详解

1、存放目录

Application属性文件,按优先级排序,位置高的将覆盖位置

当前项目目录下的一个/config子目录

当前项目目录

项目的resources即一个classpath下的/config包

项目的resources即classpath根路径(root)

SpringBoot配置文件加载顺序详解

2、读取顺序

如果在不同的目录中存在多个配置文件,它的读取顺序是:

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

3、配置文件的生效顺序,会对值进行覆盖

@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 = “${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
赞(1)
未经允许不得转载:ghMa » SpringBoot配置文件加载顺序详解
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    nb

    tt4年前 (2020-05-27)回复