首页 > 其他分享 >yml/yaml--文件格式/配置文件--用法/写法

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

时间:2022-11-01 15:26:32浏览次数:148  
标签:缩进 配置文件 YAML -- yaml 文件格式 字符串 yml

原文网址:yml/yaml--文件格式/配置文件--用法/写法_IT利刃出鞘的博客-CSDN博客

简介

说明

        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 - 中文开源技术交流社区

 

标签:缩进,配置文件,YAML,--,yaml,文件格式,字符串,yml
From: https://www.cnblogs.com/fnlingnzb-learner/p/16847788.html

相关文章

  • 珠宝加工厂:我的成本下降空间在哪里?
    摘要:珠宝加工厂,如何通过IoT边缘技术,OT/IT数据融合,实现成本的下降、效率的提升本文分享自华为云社区《玩转物联网IoT边缘服务系列二-珠宝加工的成本下降空间在哪里?》,作者:el......
  • <4> os.popen()获取js解密结果
    #访问js文件,获取解密结果defdecrypto(self,data:str):#加密字符串importoswithos.popen("nodejs文件{}".format(data)asp:returnp.read.s......
  • Nt、Ki、Zw等前缀含义
    搜索到如下回答。 https://stackoverflow.com/questions/4770553/windows-native-api-when-and-why-use-zw-vs-nt-prefixed-api-callsWindows本机系统服务例程的名称......
  • 数据库事务 脏读 幻读 不可重复读
    总结:脏读:读取事务未提交的修改之后的数据。幻读:读取事务未提交的 增删之后的数据。不可重复读:多次读取事务已经提交的数据。一、什么是数据库事务数据库事务(......
  • 启明智显|4.3寸串口屏应用于家用美容仪方案
    近年来,我国家用美容仪市场飞速发展,大众对“美”的追求不断提高,人们不仅追求更好的护肤效果,同样追求更高的护肤效率。家用美容仪是介于医美和护肤品之间,既是护肤品的升级,也......
  • 动态规划学习入门(小白零基础)
    动态规划学习入门(小白零基础)基础概念如果某一问题可拆解成若干重叠子问题,即可用动态规划解决。重叠子问题:比如斐波那契数列F(n)可分解成F(n-1)+F(n-2),而F(n-1)又可......
  • 关于Editview失去焦点问题
    项目背景:在一次项目中,需要输入框输入结束后就立即发送注册包给平台以获取网关列表,开始的想法是,监听收起键盘就执行,但是最后没有实现,最后想到了editview失去焦点的事件,一旦......
  • 81-《大厂高薪必备技能实战1期》13-微服务架构治理-剪辑_ev
                   ......
  • 道长的算法笔记:单调栈查找前驱与后继
    单调栈单调栈是一种满足单调性的栈结构,其维护单调性方式是弹出栈顶不符合的条件的元素,也就是说,单调栈存储的并非入栈的全部元素,相当一部分元素会被弹掉。使用单调栈通常......
  • python基础复习
    目录今日内容概要管理员功能说明及建议总复习函数模块homework今日内容概要管理员功能说明及建议1、冻结账户2、删除账户3、查看/修改指定用户各项数据(密码、购物车)......