springBoot(2):Properties和YAML配置文件

简介:

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

1. @TestPropertySource 注解

2. 命令行参数

3. Java系统属性(System.getProperties())

4. 操作系统环境变量

5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource

6. 在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)

7. 在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)

8. 在@Configuration类上的@PropertySource注解

9. 默认属性(使用SpringApplication.setDefaultProperties指定)

二、配置随机值

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}")

 

注:出现黄点提示,是要提示配置元数据,可以不配置

三、配置属性占位符

当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)。

roncoo.name=www.roncoo.com

roncoo.desc=${roncoo.name} is a domain name


例子:

  wKiom1k77HSQ7RnfAABTCOI4q9c666.jpg

application.properties配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
##################################服务器配置##################################
server.port = 80
server.tomcat.uri-enconding = UTF-8
##################################随机数配置##################################
#32位的随机数
roncoo.secret=${random.value}
#数字随机数
roncoo.number=${random. int }
roncoo.number2.less.than.ten=${random. int (10)}
roncoo.number3.in.range=${random. int [1024,65536]}
##################################配属性占位符配置##################################
roncoo.name=zhangsan
roncoo.desc=${roncoo.name} is a domain name



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

1. 当前目录下的一个/config子目录

2. 当前目录

3. 一个classpath下的/config包

4. classpath根路径(root)

 

这个列表是按优先级排序的(列表中位置高的将覆盖位置低的)


例子,基于上面例子,复制一份application.properties配置文件放在classpath下的/config包下,如下:

wKioL1k77UnDVOPkAADXqOYhSOM592.jpg

wKiom1k77aLQlGdgAAAl2Qe94jY150.jpg

五. 配置应用端口和其他配置的介绍

#端口配置:

server.port=8090

#时间格式化

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

#时区设置(亚洲重庆)

spring.jackson.time-zone=Asia/Chongqing


注意:默认的时区不是中国的,上面配置的是亚洲重庆


如果设置时区时:

 wKioL1k778nArpARAACtHSjHt9E346.jpg

设置时区为亚洲重庆:

 wKioL1k78CqhhiixAADA0g9mtBc409.jpg



六. 使用YAML代替Properties

注意写法:冒号后要加个空格

本文转自我爱大金子博客51CTO博客,原文链接http://blog.51cto.com/1754966750/1934134如需转载请自行联系原作者


我爱大金子

相关文章
|
18天前
|
Java 调度 Spring
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
38 0
|
3月前
|
存储 IDE 测试技术
玩转数据处理利器:学会使用 YAML 文件轻松处理数据
玩转数据处理利器:学会使用 YAML 文件轻松处理数据
55 0
|
3月前
|
Java
SpringBoot之yaml
SpringBoot之yaml
|
3月前
|
Java C++
SpringBoot中的properties,yml,yaml的区别
SpringBoot中的properties,yml,yaml的区别
32 0
|
2月前
|
机器学习/深度学习 数据可视化 计算机视觉
YOLOv5改进 | 2023Neck篇 | 轻量级跨尺度特征融合模块CCFM(附yaml文件+添加教程)
YOLOv5改进 | 2023Neck篇 | 轻量级跨尺度特征融合模块CCFM(附yaml文件+添加教程)
132 1
|
2月前
|
Shell Go
go 编辑yaml 文件
在Go语言中编辑YAML文件通常涉及以下步骤: 1. 读取YAML文件内容到字符串。 2. 使用YAML解析库(如`gopkg.in/yaml.v2`)将字符串解析为Go数据结构(如`map[string]interface{}`或自定义的结构体)。 3. 修改数据结构中的值以更新YAML内容。 4. 将修改后的数据结构编码回YAML格式的字符串。 5. 将字符串写回到YAML文件。 以下是一个简单的例子,展示了如何使用`gopkg.in/yaml.v2`库来编辑YAML文件: 首先,确保你已经安装了`gopkg.in/yaml.v2`包: ```bash go get gopkg.i
|
2月前
|
编解码 文件存储 计算机视觉
YOLOv5改进 | 2023Neck篇 | BiFPN双向特征金字塔网络(附yaml文件+代码)
YOLOv5改进 | 2023Neck篇 | BiFPN双向特征金字塔网络(附yaml文件+代码)
190 0
|
2月前
|
存储 JSON JavaScript
【YAML语法规范指南】从入门到精通,揭秘神秘语法,引领配置文件解析指南(基础结构篇)
"YAML Ain't Markup Language"(简称YAML)是一种专为人类设计的数据序列化语言,适用于多种现代编程语言,可广泛应用于各类日常任务。它是一种以人类可读形式呈现的、适用于多种语言的Unicode数据序列化标准。它基于敏捷编程中常见的本地数据结构,广泛应用于配置文件、互联网消息传递、对象持久化以及数据审计等多个领域。遵循Unicode标准、
104 8
【YAML语法规范指南】从入门到精通,揭秘神秘语法,引领配置文件解析指南(基础结构篇)
QGS
|
3月前
|
JSON Java 关系型数据库
手拉手Springboot获取yml配置文件信息
手拉手Springboot获取yml配置文件信息
QGS
34 1
|
3月前
|
XML JSON Java
SpringBoot 配置文件编写及使用方式 (拒绝硬编码)
SpringBoot 配置文件编写及使用方式 (拒绝硬编码)
27 0