YML是什么?
YAML是一种标记语言,通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,一种专门用来写配置文件的语言。
YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。
例如:
yml
student: name: wanma age: 15
xml
<student> <name>wanma</name> <age>15</age> </student>
YML的优点在这也就体现了出来,那就是:简洁明了、易于阅读
语法规范
k: v 表示键值对关系,冒号后面必须有一个空格
使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都是同一个层级的
大小写敏感
缩进时不允许使用Tab键,只允许使用空格。(但是idea中会自动替换Tab键)
java中对于驼峰命名法,可用原名或使用-代替驼峰,如java中的lastName属性,在yml中使用lastName或 last-name都可正确映射。
yml中注释前面要加#
键值关系
普通值
k: v: 字面量直接写; (字面量就是比如说int a = 1; 这个1就是字面量 ,a是变量名)
字符串默认不用加上单引号或者双绰号
"": 双引号;转意字符能够起作用
name: "wanma \n xuetang":输出;wanma 换行 xuetang
' ':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name1: xiaoma name2: 'da \n ma ' name3: "wanma \n xuetang" age: 15 flag: true
日期
date: 2001/01/01
对象(属性和值)、Map(键值对)
多行写法
在下一行来写对象的属性和值的关系,注意缩进
student: name: xiaoma age: 20
行内写法
student: {name: xiaoma,age: 20}
数组,set,list
用- 值表示数组中的一个元素
多行写法
pets: - dog - pig - cat
行内写法
pets: [dog,pig,cat]
对象数组、对象list、对象set
students: - name: xiaoma age: 22 - name: xiaozhang age: 20 - {name: wangwu,age: 18}
占位符赋值
可以使用 ${key:defaultValue} 的方式来赋值,若key不存在,则会使用defaultValue来赋值。
例如:
server: port: ${myPort:88} myPort: 80
小技巧
其实可以从idea中清楚地看到yml的层级关系
0条评论
点击登录参与评论