一、YML语法

1.约定

  • k: v 表示键值对关系,冒号后面必须有一个空格

  • 使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都是同一个层级的

  • 大小写敏感

  • 缩进时不允许使用Tab键,只允许使用空格。

  • 松散表示,java中对于驼峰命名法,可用原名或使用-代替驼峰,如java中的lastName属性,在yml中使用lastName或 last-name都可正确映射。

2.键值关系

  对于键与值主要是看能否表示以下内容。普通的值(数字、字符串、布尔)、日期、对象、数组、集合等。

1 字符串默认不用加上单引号或者双绰号;
2
3 "": 双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
4
5 name: "zhangsan \n lisi":输出;zhangsan \n lisi
6
7 '':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

  日期

date: 2019/01/01

  对象(属性和值)、Map(键值对)

在下一行来写对象的属性和值的关系,注意缩进
people:
name: zhangsan
age: 20 行内写法:
people: {name:zhangsan,age: 20}

  数组、list、set

    用 - 表示数组中的一个元素

pets:
- dog
- pig
- cat 行内写法:
pets: [dog,pig,cat]

  数组对象、list对象、set对象

peoples:
- name: zhangsan
age: 22
- name: lisi
age: 20
- {name: wangwu,age: 18}
 1 java代码示例
2 public class Person {
3
4 private String lastName;
5 private Integer age;
6 private Boolean boss;
7
8 //Spring @value数组示例
9 @Value("#{'${arrays}'.split(',')}")
10 private String[] arrays;
11
12 private Date birth;
13 private Map<String,Object> maps;
14 private List<Dog> lists;
15 private Dog dog;
16 private String[] arr;
17 }
18 public class Dog {
19 private String name;
20 private Integer age;
21 }
22
23
24 对应的yml
25 person:
26 boss: false
27 maps:
28 k1: v1
29 k2: 14
30 lists:
31 - name: d1
32 age: 2
33 - name: d2
34 age: 3
35 - {name: d3,age: 4}
36 birth: 2017/12/15
37 dog:
38 name: p_dog
39 age: 15
40 age: 13
41 last-name: 张三
42 arr: [s1,s2,s3]
43 arrays: 'a1,a2'

3.文档块

  对于测试环境,预生产环境,生产环境可以使用不同的配置,如果只想写到一个文件中,yml与是支持的,每个块用 ---- 隔开

 1 server:
2 port: 8081
3 spring:
4 profiles:
5 active: prod #激活对应的文档块
6
7 ---
8 server:
9 port: 8083
10 spring:
11 profiles: dev #指定属于哪个环境
12
13
14 ---
15
16 server:
17 port: 8084
18 spring:
19 profiles: prod #指定属于哪个环境

二、Yaml中特殊符号“| > |+ |-”的作用

  "|",保留每行尾部的换行符\n。
  ">",删除每行尾部的换行符\n,则看似多行文本,则在程序中会将其视为一行。

1 include_newlines: |
2 exactly as you see
3 will appear these three
4 lines of poetry
5
6 fold_newlines: >
7 this is really a
8 single line of text
9 despite appearances

  在">"符号应用的多行文本值中,所有换行符都会被视为空格,有两种方法都可以强制保留换行符:

1 fold_some_newlines: >
2 a
3 b # 在两行之间空一行
4
5 c
6 d
7 e # 在值前面再加一个空格
8 f
9 same_as: "a b\nc d\n e\nf\n"

  "|+",保留每行尾部的换行符\n的同时,保留内容结尾处的换行符\n。
  "|-",保留每行尾部的换行符\n的同时,删除内容结尾处的换行符\n。

1 s1: |
2 Foo
3
4 s2: |+
5 Foo
6
7 s3: |-
8 Foo


YML的更多相关文章

  1. elasticsearch按照配置时遇到的一些坑 [Failed to load settings from [elasticsearch.yml]]

    这里整理几个空格引起的问题. 版本是elasticsearch-2.3.0 或者elasticsearch-rtf-master Exception in thread "main" ...

  2. Drupal8开发教程:认识.info.yml文件

    YAML 文件是新引入的重要项目文件,在 Drupal 8 中,无论是模块.主题还是安装配置文件,都需要 .info.yml 文件来为其存储项目相关的基础信息. 在 Drupal 中,.info.ym ...

  3. yml文件数据的简洁表达方法(Hashes to OpenStruct)

    通过ruby编写测试脚本的时候,我还是喜欢采用yml来管理测试数据,就像以前的文章(Selenium WebDriver + Grid2 + RSpec之旅(五))提到的一样,但是在引用yml中的数据 ...

  4. docker-compose.yml 语法说明

    YAML 模板文件语法 默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建. 其 ...

  5. springboot 配置文件 .properties和.yml的写法区别

    例如 :    redis配置的properties或yml文件,如下: spring.redis.cluster.nodes[]= spring.redis.cluster.nodes[]= 或 s ...

  6. springboot工程读取配置文件application.yml的写法

    现在流行springboot框架的项目,里面的默认配置文件为application.yml,我们怎样读取这个配置文件呢? 先贴上我得配置文件吧 目录结构 里面内容 1 写读取配置文件的工具类 @Con ...

  7. Opencv探索之路(十九):读写xml和yml文件

    有时候我们处理完图像后需要保存一下数据到文件上,以供下一步的处理.一个比较广泛的需求场景就是:我们对一幅图像进行特征提取之后,需要把特征点信息保存到文件上,以供后面的机器学习分类操作.那么如果遇到这样 ...

  8. yml 文件操作方法

    文件读取方法示例: import yaml fr = open('yml_file_address', 'r',encoding='utf-8') data = yaml.load(fr) print ...

  9. SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active

    趁今天有时间整理了一下 启动命令为 //开发环境 java -jar app.jar --spring.profiles.active=dev--server.port=8060 //测试环境 jav ...

  10. filebeat.yml(中文配置详解)

    ################### Filebeat Configuration Example ######################### ####################### ...

随机推荐

  1. ob_DES_艺恩

    网站 aHR0cHM6Ly93d3cuZW5kYXRhLmNvbS5jbi9Cb3hPZmZpY2UvQk8vWWVhci9pbmRleC5odG1s 抓包返回密文  点到initator,PostA ...

  2. vue 原生js-实现下拉框

    <template> <div class="por"> <div class="selectBox" style="w ...

  3. 用 while 生成猜数字

    import java.util.Random; import java.util.Scanner; public class zy2 { public static void main(String ...

  4. 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验

      作为一款面向ToB市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路.   在面向ToB客户私有化的实际落地中,火 ...

  5. [0x11] 131.直方图中最大的矩形【单调栈】

    题意 link(more:SPOJ1805) 如图,在水平线上有 \(n(n\leqslant10^5)\) 个宽度为 1 ,高度为 \(h(0\leqslant h\leqslant10^9)\) ...

  6. Visual Studio 2022 MAUI NU1105(NETSDK1005) 处理记录

    故障说明 MAUI项目是日常使用的项目,一直都好好的 某一天修改了几行代码后,突然项目无法编译了,提示NU1105错误 从Git重新拉取一份之前的代码编译也是同样的错误,经过半天的查阅,尝试了几种方案 ...

  7. 【JVM故障问题排查心得】「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?

    为什么我设置的大小关系没有错,还会OOMKilled? 这种问题常发生在JDK8u131或者JDK9版本之后所出现在容器中运行JVM的问题:在大多数情况下,JVM将一般默认会采用宿主机Node节点的内 ...

  8. SSM框架——MyBatis

    Mybatis 1.Mybatis的使用 1.1给项目导入相关依赖 我这里有几个下载好的依赖包提供给大家 点我下载--junit4.13.2 点我下载--maven3.8.1 点我下载--mybati ...

  9. UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)

    简要题意 这道题就是要你维护一个学生成绩管理系统. 代码实现 程序设计 为了方便输出,我们定义了 println 函数: void println(string s){ cout<<s&l ...

  10. 8KB的C#贪吃蛇游戏热点答疑和.NET7版本

    在之前的一篇文章<看我是如何用C#编写一个小于8KB的贪吃蛇游戏>中,介绍了在.NET Core 3.0的环境下如何将贪吃蛇游戏降低到8KB.不过也有很多小伙伴提出了一些疑问和看法,主要是 ...