spring将yaml格式作为配置文件格式,必须得好好熟悉一下

基本语法

yaml对象

以键值对的方式表示 中间用: 分隔key & value,:号后面带一个空格

key: 
  value1
  value2

yaml数组

yaml数组用- 号开头,:号后面带一个空格

arr: 
 - a
 - b
 - c

也可以表示多维数组,需控制层级

array: 
  -
    - a
    - b
    - c
  -
    - x
    - y
    - z

对象数组,就像java中的Person p1 = new Person("薛大炮", 18);Person p2 = new Person("蔡徐坤", 26);Person[] persons = new Person[]{p1, p2};

persons
  -
    name: 薛大炮
    age: 18
  -
    name: 蔡徐坤
    age: 26

复合结构

对象和数组可以构成复杂的结构关系

languages: 
  - Java
  - C++
  - Go
WebSites: 
  baidu: https://www.baidu.com
  google: https:www.google.com
  bing: https:www.bing.com

对应到json为

{
  "languages": ["Java", "C++", "Go"],
  "WebSites": {
    "baidu": "https://www.baidu.com",
    "google": "https:www.google.com",
    "bing": "https:www.bing.com"
  }
}

纯量

纯量是最基本的,不可再分的值

以一个例子来看各纯量的使用

string: 
  - 哈哈            # 字符串可直接写
  - 'good'         # 或者单引号引表示
  - "西海岸"        # 或者双引号表示
  - you jump       # 字符串可写多行,每行被转化为空格即为` you jump i jump!`
    i jump!

int: 
  - 123
  - 0100_1101     # 二进制表示
 
float: 
  - 66.6
  - 45.1231402+e5      # 可以使用科学计数法表示

boolean: 
  - TRUE
  - FALSE
  - True
  - False
  - true
  - false        # 其实 true false 全小写最常用

null: 
  - a
  - ~            # 使用~表示null

date: 2024-06-20       # 使用ISO-8601标准:yyyy-MM-dd

datetime: 2024-06-20T16:34:20+09:00     # 使用ISO-8601标准:yyyy-MM-ddTHH:mm:ss+时区

引用

&表示锚点,*表示引用锚点,<<: 表示合并到当前数据流

database: &database
  host: 127.0.0.1
  port: 3306
  user: root
  password: 123456

mysql: 
  <<: *database             # 若未生效 则mardown解析器不兼容
转载请注明出处