0
点赞
收藏
分享

微信扫一扫

yml/yaml--文件格式/配置文件--用法/写法

笙烛 2022-02-25 阅读 84


简介

说明

       YAML 是一种简洁的非标记语言,文件名后缀为.yml,java中经常用它描述配置文件。

        YAML以数据为中心,比json/xml等更适合做配置文件。

        使用空格进行缩进,分行组织数据,从而使得表示更加简洁易读。

基本规则


  • 大小写敏感。
  • 使用缩进表示层级关系。只能使用空格进行缩进,禁止使用tab缩进。
  • 在SpringBoot中,使用两个空格进行缩进。
  • 使用#表示注释。
  • 字符串可以不用引号标注。
  • 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。

数据类型

YAML 支持以下几种数据类型:


  • 对象:键值对的集合。又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为列表(list)/ 序列(sequence)
  • 纯量(scalars):单个的、不可再分的值

格式

纯量

简介

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


  • 字符串
  • 布尔值
  • 整数
  • 浮点数
  • Null
  • 时间
  • 日期

示例

key1: true

字符串

字符串可不用加单引号或双引号

str: 这是一行字符串
# 转为json之后:{ "str": "这是一行字符串" }

可使用双引号或者单引号包裹

多行字符串

# 字符串可以拆成多行,换行符会被转化成一个空格
str: 这是一段
多行
字符串
# 转换为 JSON 格式 { "str": "这是一段 多行 字符串" }
# 可使用|保留换行符,也可使用>折叠换行
this: |
Foo
Bar
that: >
Foo
Bar
# 转换后:{ this: 'Foo\nBar\n', that: 'Foo Bar\n' }

单引号和双引号的区别​:单引号会对特殊字符转义,双引号不会对特殊字符转义

str1: '这是\n字符串'
str2: "这是\n字符串"

转换后的结果 

{'str1': '这是\\n字符串', 'str2': '这是\n字符串'}

布尔值

TRUE  #true,True都可以

FALSE  #false,False都可以

整数型

1234

浮点型

3.14

6.8523015e+5  #可以使用科学计数法 

对象

对象键值对:使用冒号结构表示:​key: value​,冒号后面要加一个空格。

层级关系有如下两种表示方式

写法1:

key:
key1: value1
key2: value2

写法2:

key: {key1: value1, key2: value2, ...}

数组

数组/List/Set(用-值表示数组中的一个元素)

:法1

pets:
- cat
- dog
- pig

法2

pets: [cat,dog,pig]

YML支持多维数组

法1:​在该项下面缩进一个空格。(貌似不缩进也可以)

-
- A
- B
- C

结果:[["A", "B", "C"]] 

法2:行内表示:

key: [value1, value2, ...]

引用(yml原生支持)

说明

锚点 & 和别名 *,可以用来引用。


  • &:用来建立锚点(defaults_tag),锚点标记后面数据为引用数据
  • <<:表示合并到当前数据,
  • * :用来引用锚点。

示例 

name: &a yaml
book: *a
books:
- java
- *a
- python

# 相当于
name: yaml
book: yaml
books:
- java
- yaml
- python

引用(application.yml)

SpringBoot的application.yml或者application.properties使用${}进行引用,例如:

spring:
application:
name: order

dubbo:
application:
name: ${spring.application.name} #服务名称

高级

分段

多个文档在一个yml文件,使用 --- 分隔方式来分段。

spring:
profiles:
#激活开发环境
active: dev
---
#开发环境配置
spring:
profiles: dev
server:
port: 8080
---
#生产环境配置
spring:
profiles: prod
server:
port: 8082

其他网址

YAML 入门教程 | 菜鸟教程

YAML语法简易入门

YAML语法 - 天生帅才的博客 - OSCHINA - 中文开源技术交流社区


举报

相关推荐

0 条评论