前言
以数据为中心 , 更适合做配置文件
YAML的命名非常有意思,
YAML Ain't Markup Language
YAML A Markup Language
YAML isn't Markup Language
这是一种递归语法(头一次听),描述了YAML即是一种标记语言,又不是一种标记语言
一、YAML基本语法
使用的是键值对的方式
key:空格value [这里的空格不能省略]
使用缩进来控制层级结构,左对齐的一列表示一个层级
普通变量 : key: value
对象: key: value
对象名:
key: value
--------------------
也可以是行内写法 对象名: {key1: value1,key2: value2}
数组 :
数组名:
- 元素1
- 元素2
--------------------
数组名: [元素1,元素2...]
二、YAML读取配置文件的值
1.写配置文件
代码如下(示例):
person:
name: zhangsan
friend:
- lisi
- wangwu
map:
loc1: nanguanqu
loc2: chaoyangqu
dog:
name: 小狗
2.打注解
在对应的model里打上@ConfigurationProperties(prefix = "person") @Component
注解,前者是通知springboot这个类的属性都是配置文件中的属性值 , 后者是将JavaBean标记成一个组件
prefix属性需要与文件中指定的属性对应,即上文中yaml中的person
代码如下(示例):
@ConfigurationProperties(prefix = "person")
@Component
3.在pom.xml文件中配置文件处理器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
最后在测试模块中运行输出对象即可
Person{
name='zhangsan', dog=Dog{
name='小狗'},
friend=[lisi, wangwu], map={
loc1=nanguanqu, loc2=chaoyangqu}}
总结
未完待续