Java – Yaml格式文件
简介
Yaml 文件是一种数据格式文件,它和XML与Properties文件相似,是一种重数据轻格式的数据文本保存格式。Yaml文件格分为Yml文件和Yaml文件。
Yaml语法规则
与Properties和XML的数据格式比较
单个字段数据
XML
<name>张三</name>
<age>20</age>
Properties
name=张三
age=20
Yaml
name: 张三
age: 20
嵌套字段数据
XML
<users>
<name>张三</name>
<age>20</age>
<users>
Properties
users.name=张三
users.age=20
Yaml
users:
name: 张三
age: 20
数组数据
Yaml
users:
- user1
- user2
- user3
简写
users: [user1, user2, user3]
对象数据
Yaml
users:
- user:
name: 张三
age: 20
- user:
name: 李四
age: 21
- user:
name: 王五
age: 22
也可以把【-】号单独一行
users:
-
user:
name: 张三
age: 20
-
user:
name: 李四
age: 21
-
user:
name: 王五
age: 22
简写
users: [{name:张三, age:20}, {name:李四, age:21}, {name:王五, age:22}]
数据类型
boolean: true # TRUE,True,true,FALSE,false,False均可
float: 3.14 # 支持科学计数法 如 6.8435531e+5
int: 123 # 支持二进制、八进制、十六进制
null: ~ # 使用 ~ 表示 null
string: HelloWorld # 字符串可以直接书写
string: "Hello World" # 可以使用双引号包裹特殊字符
注意:加双引号的字符串支持 "\" 转义
data: 2023-01-24 # 日期必须使用 yyyy-MM-dd 格式
datatime: 2022-01-24T16:32:22+08:00 # 时间和日期之间使用T连接,最后使用+代表时区
数据引用
对文件中的数组进行引用
baseDir: C:\windows
# 对 baseDir 属性的引用
tempDir: ${baseDir}\Temp
systemDir: ${baseDir}\system32
读取数据
使用 @Value
注解读取单个数据,属性名引用方式 ${}
单个数据
@Value("${name}")
private String nameProp;
嵌套数据
@Value("${user.name}")
private String nameProp;
数组数据
@Value("${list[1]}")
private String likeProp;
对象数据
@Value("${list[1].user.name}")
private String nameProp;
读取整个文档数据
通过SpringBoot提供的类Environment
和@Autowired
自动装配的方式把整个配置文档加载到对象中
@Autowired
private Environment environment;
// 读取属性数据
environment.getProperty("users[1].name");
读取文档中的部分数据
通过Spring的Bean管理时,实际上配置文件已一个Bean的形式被加载进来,通过创建一个类用于保存这些配置。
Yaml 文件
datasource:
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost/springbootDB
username: root
password: root
我们可以创建一个Bean类,其属性与配置文件中的属性一致
/**
* 使用 lombok 包自动创建get set 方法
* @Data 自动创建 get set 方法
* @NoArgsConstructor 自动创建无参构造
* @AllArgsConstructor 自动创建有参构造
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
/**
* 要使Spring管理这个类,需要使这个类变成 Bean
*/
@Component
/**
* @ConfigurationProperties
* 作用是读取 SpringBoot 配置文件中的某个字段,并把相应的字段数据存入到这个Bean类中
*/
@ConfigurationProperties("datasource")
public class MyDatasource {
private String driver;
private String url;
private String username;
private String password;
}
通过自动装配,把配置数据存入Bean类中
@Autowired
private MyDatasource datasource;
THE END
0
二维码
打赏
海报
Java – Yaml格式文件
简介
Yaml 文件是一种数据格式文件,它和XML与Properties文件相似,是一种重数据轻格式的数据文本保存格式。Yaml文件格分为Yml文件和Yaml文件。
Yaml语法规则
与Properties和XML的数据……
TZMing花园 - 软件分享与学习
共有 0 条评论