2022-12-12 21:55

关于yml

徐福沛

JavaEE

(532)

(0)

收藏

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的层级关系


yml1.png


0条评论

点击登录参与评论