1、存放目录
Application属性文件,按优先级排序,位置高的将覆盖位置
当前项目目录下的一个/config子目录
当前项目目录
项目的resources即一个classpath下的/config包
项目的resources即classpath根路径(root)
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
nb