YAML文件简介

我们可能在spring配置文件里见到过.yml格式的东东,配置文件不都是.propertie或者.xml文件吗?.yml是什么鬼,今天我带你们来一探究竟。

YAML(Yet Another Markup Language)(发音 /ˈjæməl/ )
 一种基于Unicode容易阅读,容易和脚本语言交互的,用来表达资料序列的编程语言。

适应场景

  1. 脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用
  2. 序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。
  3. 配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。

语言优点

  1. YAML易于人们阅读。
  2. YAML数据在编程语言之间是可移植的。
  3. YAML匹配敏捷语言的本机数据结构。
  4. YAML具有一致的模型来支持通用工具。
  5. YAML支持单程处理。
  6. YAML具有表现力和可扩展性。
  7. YAML易于实现和使用。

YAML 语法

  1. 使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱)
  2. ‘#’表示注释,只能单行注释,从#开始处到行尾
  3. 破折号后面跟一个空格(a dash and space)表示列表
  4. 用冒号和空格表示键值对 key: value
  5. 简单数据(scalars,标量数据)可以不使用引号括起来,包括字符串数据。用单引号或者双引号括起来的被当作字符串数据,在单引号或双引号中使用C风格的转义字符

Sequence of Scalars  简单数据列表

  1. - Mark McGwire
  2. - Sammy Sosa
  3. - Ken Griffey

Mapping Scalars to Scalars 简单数据键值对以及注释

  1. hr:  65    # Home runs
  2. avg: 0.278 # Batting average
  3. rbi: 147   # Runs Batted In

Mapping Scalars to Sequences 简单数据列表键值对

  1. american:
  2. - Boston Red Sox
  3. - Detroit Tigers
  4. - New York Yankees
  5. national:
  6. - New York Mets
  7. - Chicago Cubs
  8. - Atlanta Braves

Sequence of Mappings 键值对列表

  1. -
  2. name: Mark McGwire
  3. hr:   65
  4. avg:  0.278
  5. -
  6. name: Sammy Sosa
  7. hr:   63
  8. avg:  0.288

YAML 还支持流类型,用中括号括起来表示列表,用逗号分隔元素;用大括号括起来表示键值对,用逗号分隔元素。

Sequence of Sequences 列表的列表

  1. - [name        , hr, avg  ]
  2. - [Mark McGwire, 65, 0.278]
  3. - [Sammy Sosa  , 63, 0.288]

Mapping of Mappings  键值对的键值对

  1. Mark McGwire: {hr: 65, avg: 0.278}
  2. Sammy Sosa: {
  3. hr: 63,
  4. avg: 0.288
  5. }

yaml 官方网站:http://www.yaml.org

yaml 官方文档:http://www.yaml.org/spec/1.2/spec.html

yaml文件 .yml的更多相关文章

  1. yaml文件 *.yml 写法简介

    YAML(Yet Another Markup Language)(发音 /ˈjæməl/ ) 一种基于Unicode容易阅读,容易和脚本语言交互的,用来表达资料序列的编程语言. 适应场景 脚本语言: ...

  2. SpringBoot自定义注解@YamlPropertySource加载yml或者yaml文件(扩展了@PropertySource)

    1:概述 SpringBoot的@PropertySource注解只支持加载 properties结尾的文件.当使用@ConfigurationProperties 注解配合@EnableConfig ...

  3. python----数据驱动@ddt.file_data结合yaml文件的使用

    一.创建yaml文件1. 安装yaml模块 pip install pyyaml2. 新建yaml文件 右键任意文件夹-->New-->File,输入文件名并以.yaml或.yml结尾 二 ...

  4. 持续集成时 travis 和 codecov 等 yaml 文件的配置

    最近在项目中在配置CodeCov 以及Travis 和 AppVeyor做持续集成时,遇到了一些问题,也解决了一些问题.顺便拿来分享一下. 首先时Travis,这个主要是来跑基于 Linux 环境下的 ...

  5. YAML文件简介

    编程免不了要写配置文件,怎么写配置也是一门学问. YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. 本文介绍 YAML 的语法,以 JS-YAML 的实现为例.你可以去 ...

  6. OpenCV教程(42) xml/yaml文件的读写

    参考资料: http://docs.opencv.org/modules/core/doc/xml_yaml_persistence.html #include "opencv2/openc ...

  7. yaml文件解析详解

    前言 yaml文件是什么?yaml文件其实也是一种配置文件类型,相比较ini,conf配置文件来说,更加的简洁,操作也更加简单,同时可以存放不同类型的数据,不会改变原有数据类型,所有的数据类型在读取时 ...

  8. java 读取 yaml 文件

        做 java 项目用的最多的配置文件就是 properites 或者 xml, xml 确实是被用烂了,Struts, Spring, Hibernate(ssh) 无一不用到 xml.相比厚 ...

  9. SpringBoot系列之@PropertySource读取yaml文件

    SpringBoot系列之@PropertySource支持yaml文件读取 最近在做实验,想通过@PropertySource注解读取配置文件的属性,进行映射,习惯上用properties都是测试没 ...

随机推荐

  1. JSON初试

    本次在课堂上老师教我使用JSON. 本次的教学网站是:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON?td ...

  2. IntelliJ IDEA 2017.3.5 安装 lombok-plugin-0.17 失败,通过网络下载总是超时

    1.问题: IntelliJ IDEA 2017.3.5 安装 lombok-plugin-0.17 失败,通过网络下载总是超时: 2.原因:IntelliJ IDEA 2017.3.5 目前还不支持 ...

  3. 【HTML&CSS】文本的基本处理

    其实在写这篇博客的时候已经学了很久,也写了不少代码,特别是很枯燥的看完整个html部分,因为不带有CSS写出来的东西干巴巴的一点也不好看. 直到展开CSS学习才开来补上博客,嗯,这是个好习惯. 这是运 ...

  4. 小米3 无法显示日志 Logcat

    需要ROOT权限 1. 使用文件浏览器进入  /system/etc/init.d/  目录 2.使用文本编辑器打开里面的  01Supertweak 这个文件 在最下面找到   rm /dev/lo ...

  5. Java & COM

  6. boost库的配置——Linux篇

    Boost库分为两个部分来使用,一是直接使用对应的头文件,二是需要编译安装相应的库才可以使用. 下面是boost在Linux上安装和使用过程(整个boost库全部安装): (1)在www.boost. ...

  7. Infor SyteLine创建一个数据维护窗口

    上次有在SyteLine解决一个问题<匹配与显示中文说明> http://www.cnblogs.com/insus/p/3396541.html .这些数据需要数据库管理员在数据库才能维 ...

  8. wxpython 设置鼠标样式

    鼠标指针被设置为放大镜样式.可用的鼠标指针样式有: wx.CURSOR_ARROWwx.CURSOR_RIGHT_ARROWwx.CURSOR_BLANKwx.CURSOR_BULLSEYEwx.CU ...

  9. docker-day1-安装和基本使用

    Docker 1.什么是docker Docker 是一个开源项目,可以实现轻量级的操作系统虚拟化解决方案. Docker 的基础是 Linux 容器(LXC)等技术.在 LXC 的基础上 Docke ...

  10. May 12th 2017 Week 19th Friday

    Love asks faith, and faith asks firmness. 爱情要求忠诚,而忠诚要求坚贞. Love, as well as many other relations amon ...