YML
一、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的更多相关文章
- elasticsearch按照配置时遇到的一些坑 [Failed to load settings from [elasticsearch.yml]]
这里整理几个空格引起的问题. 版本是elasticsearch-2.3.0 或者elasticsearch-rtf-master Exception in thread "main" ...
- Drupal8开发教程:认识.info.yml文件
YAML 文件是新引入的重要项目文件,在 Drupal 8 中,无论是模块.主题还是安装配置文件,都需要 .info.yml 文件来为其存储项目相关的基础信息. 在 Drupal 中,.info.ym ...
- yml文件数据的简洁表达方法(Hashes to OpenStruct)
通过ruby编写测试脚本的时候,我还是喜欢采用yml来管理测试数据,就像以前的文章(Selenium WebDriver + Grid2 + RSpec之旅(五))提到的一样,但是在引用yml中的数据 ...
- docker-compose.yml 语法说明
YAML 模板文件语法 默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建. 其 ...
- springboot 配置文件 .properties和.yml的写法区别
例如 : redis配置的properties或yml文件,如下: spring.redis.cluster.nodes[]= spring.redis.cluster.nodes[]= 或 s ...
- springboot工程读取配置文件application.yml的写法
现在流行springboot框架的项目,里面的默认配置文件为application.yml,我们怎样读取这个配置文件呢? 先贴上我得配置文件吧 目录结构 里面内容 1 写读取配置文件的工具类 @Con ...
- Opencv探索之路(十九):读写xml和yml文件
有时候我们处理完图像后需要保存一下数据到文件上,以供下一步的处理.一个比较广泛的需求场景就是:我们对一幅图像进行特征提取之后,需要把特征点信息保存到文件上,以供后面的机器学习分类操作.那么如果遇到这样 ...
- yml 文件操作方法
文件读取方法示例: import yaml fr = open('yml_file_address', 'r',encoding='utf-8') data = yaml.load(fr) print ...
- SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active
趁今天有时间整理了一下 启动命令为 //开发环境 java -jar app.jar --spring.profiles.active=dev--server.port=8060 //测试环境 jav ...
- filebeat.yml(中文配置详解)
################### Filebeat Configuration Example ######################### ####################### ...
随机推荐
- python模块的含义
目录 模块简介 模块的本质 python模块的历史 python模块的表现形式 模块的分类 导入模块的两种句式 强调 import句式 import流程推导 练习 from...import...句式 ...
- 基于 Traefik 的 Basic Auth 配置
前言 Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易. Traefik可以与现有的多种基础设施组件(Docker.Swarm模式.Kubernetes.Marathon. ...
- vue-element-admin 安装(node方式)
vue-element-admin node方式安装 需要的环境: git .node.js 1.git clone 项目(2选 1) // github https://github.com/Pan ...
- s2-007
漏洞名称 S2-007 CVE-2012-0838 远程代码执行 利用条件 Struts 2.0.0 - Struts 2.2.3 漏洞原理 age来自于用户输入,传递一个非整数给id导致错误,str ...
- 我们来汉化IntelliJ IDEA
(原发于 GitHub Pages,2018-10-13 13:51:09) 两年前我从一名光荣的C++程序员专业为PHP程序员以后,告别了世界第一IDE Visual Studio,改用当时觉得特别 ...
- Redefinition of 'y1' as different kind of symbol
Redefinition of 'y1' as different kind of symbol 原因 解释:此次定义的y1变量与函数库中定义的y1重名了,所以编译错误,重定义了y1变量. 解决方法: ...
- Keil 5(C51 与 MDK-ARM)官网下载安装包 [ 图文教程 ]
前言 本篇我将介绍 Keil C51 和 MDK-ARM 两大集成开发环境的安装包下载方法,帮助大家安全快速的从官网下载安装包. 博主编写了软件安装教程,可以在安装包下载完成后,跳转观看图文教程进行软 ...
- Java后台如何接收与处理JSON类型数据
项目开发中偶尔会使用到某个为JSON类型的字段,一个字段中又包含多个其他的字段. 这种设计方式是根据实际需要来进行处理的,比如规则可能包含多条,每一条规则又包含 多个字段:再比如一些特殊的应用场景如标 ...
- SQL基本概念-SQL通用语法
SQL基本概念 1. 什么是SQL ? Structured Query Language : 结构化查询语言,其实就是定义了操作所有关系型数据库的规则.每一种数据库操作的方式存在不一样的地方,称为 ...
- Sundial(一)
Sundial 源码梳理 - v2.5.6 代码目录一览 通过入口点说明 实现IServiceCollection,并返回IServiceCollection(Extensions/ScheduleS ...