YAML

1. 概述

YAML是 "YAML Ain't a Markup Language" (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。

这种语言以数据作为中心,而不是以标记语言为重点!

YAML比较简单,开发中较常使用,也是SpringBoot官方推荐的。

  • 传统xml配置:

    <server>
        <port>8080<port>
    </server>
    
  • yaml配置:

    server:
      prot: 8080
    

2. 基础语法

说明:语法要求严格!

  1. 空格不能省略
  2. 以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。
  3. 属性和值的大小写都是十分敏感的。

字面量:普通的值 [ 数字,布尔值,字符串 ]

  • 字面量直接写在后面就可以 , 字符串默认不用加上双引号或者单引号;k: v

    注意:

    • ""双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;

      比如 :name: "kuang \n shen" 输出 :kuang 换行 shen

    • ' '单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出

      比如 :name: ‘kuang \n shen’ 输出 :kuang \n shen

对象、Map(键值对)

#对象、Map格式
k: 
    v1:
    v2:
student:
    name: zhangsan
    age: 3

也可以写成

student: {name: zhangsan, age: 3}

数组( List、set )

用 - 值表示数组中的一个元素,比如:

pets:
 - cat
 - dog
 - pig

行内写法

pets: [cat,dog,pig]

3. 配置文件占位符

yaml可以在value后面生成占位符,功能相比properties强大。

# 生成随机的uuid
${random.uuid}
# 生成随机的int值
${random.int}
# 如果person对象的val值存在,则此占位符值就为val值,或者就是: 后面所给的值
${person.val:hello}

4. 和Properties的对比

详见SpringBoot--->Configuration

Copyright © rootwhois.cn 2021-2022 all right reserved,powered by GitbookFile Modify: 2023-03-05 10:55:52

results matching ""

    No results matching ""