1. YAML 介绍

  • YAML:以数据为中心,比JSON,XML更适合做配置文件;
//示例:
server:
port: 8081 //此处有空格

2. YAML 基本语法

  • 使用缩进表示层级关系;
  • 缩进时,不允许使用Tab键,只允许使用空格;
  • 缩进的空格数目不重要,只有相同层级的元素左侧对齐即可;
  • 大小写敏感;

3. YAML 支持的三种数据结构

  • 对象:键值对的集合;
  • 数组:一组按次序排列的值;
  • 字面量(数字,字符串,布尔):单个的,不可再分的值;
    • 字符串默认不用加上单引号或双引号;
    • 双引号,默认不会转义字符串里面的特殊字符;
    • 单引号,会转义特殊字符,特殊字符最终只是一个普通的字符串数据;
// 编写application.yml配置文件
server:
port: 8081 person:
lastName: zhangsan
age: 18
boss: false
birth: 2008/8/8
maps: {k1: v1, k2: v2}
lists:
- zhaoliu
- lisi
dog:
name: 鲁亚
age: 12 // 实体类
public class Dog{
private String name;
private Integer age; // 省略 getter,setter,toString
} /**
* @ConfigurationProperties 将本类中的所有属性和配置文件中相关配置进行绑定
* prefix = "person": 配置文件中哪个下面的所有属性进行一一映射;
*
* @Component
* 只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能;
*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person{
private String lastName;
private Integer age;
private Boolean boss;
private Date birth; private Map<String, Object> maps;
private List<Object> lists;
private Dog dog; // 省略 getter,setter,toString
} // pom.xml 中导入配置文件处理器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

4. properties配置文件

# application.properties
# 配置person的值 person.lastName=张三
person.age=18
person.birth=2018/5/3
person.boss=false
person.maps.k1=v1
person.maps.k2=v2
person.lists=a,b,c
person.dog.name=xiaohua
person.dog.age=11

5. @PropertySource@ImportResource

  • @ConfigurationProperties:默认从全局配置文件中获取值;
  • @PropertySource:加载指定的配置文件;
  • @ImportResource:导入Spring的配置文件;
// @PropertySource
person.properties person.lastName=韦小宝
person.age=18
person.birth=2018/5/3
person.boss=false
person.maps.k1=v1
person.maps.k2=v2
person.lists=a,b,c
person.dog.name=xiaohua
person.dog.age=11 // Person类
@Component
@PropertySource(value={"classpath:person.properties"})
@ConfigurationProperties(prefix = "person")
public class Person{
private String lastName;
private Integer age;
private Boolean boss;
private Date birth; private Map<String, Object> maps;
private List<Object> lists;
private Dog dog; // 省略 getter,setter,toString
}

参考资料:

YAML 语言的更多相关文章

  1. 转: YAML 语言教程 from(阮一峰)

    YAML 语言教程 from: http://www.ruanyifeng.com/blog/2016/07/yaml.html

  2. YAML 语言语法

    发现很多开源的软件的配置文件都使用了这种语言来描述,据说是简单强大,很不巧,ansible也使用了这种语言来描述配置,学习ansible之前,先学习一下YAML语言. YAML基本语法规则如下: 大小 ...

  3. 关于yaml语言

    yaml语言广泛用于书写配置文件. 主要特点如下: 1.使用缩进表示层级关系,缩进使用空格键(非Tab键) 2.缩进的空格数目不要求,只要相同层级的元素左侧对其即可 3.#之后的内容为注释 4.yam ...

  4. 转:spring boot log4j2配置(使用log4j2.yml文件)---YAML 语言教程

    转:spring boot log4j2配置(使用log4j2.yml文件) - CSDN博客http://blog.csdn.net/ClementAD/article/details/514988 ...

  5. yaml语言在线可视化翻译

    yaml语言在线可视化翻译 https://editor.swagger.io/

  6. YAML 语言教程

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

  7. YAML 语言教程(转载)

    用YAML语言读取配置是最快的,之前的suricata中用yaml读取了配置,并且在代码运行期间,对配置进行了维护,所以抽点时间,来了解一下YAML语言编程,下文虽然对YAML语言和JAVAScrip ...

  8. YAML语言简明教程

    编程免不了要写配置文件,如果你还在用xml/ini/json,就有点过时了,怎么写配置也是一门学问. YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. 本文介绍 YAM ...

  9. 学习笔记:yaml语言教程

    目录 1.YAML基本概念 1.1 简介 1.2 基本语法 1.3 支持的数据结构: 1.4 注意点 2.数据结构 2.1 字典 2.2 数组 2.3 纯量 2.4 强制类型转换,双! 2.5 字符串 ...

  10. YAML 语言格式

    1. 认识 YAML YAML(Yet Another Markup Language)语言(发音 /ˈjæməl/ )是一个类似 XML.JSON 的标记性语言.YAML 强调以数据为中心,并不是以 ...

随机推荐

  1. You-Get 视频下载工具 Python命令行下载工具

    You-Get 是一个命令行工具, 用来下载各大视频网站的视频, 是我目前知道的命令行下载工具中最好的一个, 之前使用过 youtube-dl, 但是 youtube-dl 吧, 下载好的视频是分段的 ...

  2. 基于css3的鼠标经过动画显示详情特效

    之前为大家分享过一款基于jquery的手风琴显示详情,今天给大家分享基于css3的鼠标经过动画显示详情特效.这款实例鼠标经过的时候基于中间动画放大,效果非常不错,效果图如下: 在线预览   源码下载 ...

  3. windows下安装配置apacheserver

    注:一開始公布的时候 图片是复制粘贴的.所以公布完图片所有消失了...如今是补发图片. . .2016/04/25 1.进入apache官网  http://httpd.apache.org/ 这里我 ...

  4. [i.MX6q]i.MX6q处理器,linux操作系统平台搭建 从SD卡启动系统

    转自:http://www.07net01.com/linux/2016/02/1232094.html 参照1:http://blog.csdn.net/girlkoo/article/detail ...

  5. PHP——简单的表单提交

    <body> <form name="" method="post" action="CHULI.php"> < ...

  6. 003杰信-在jsp页面输入数据,然后在oracle数据库中插入factory数据,当字段允许为空时要特殊处理

    本博客的内容全部来自于传智播客,特在此说明. 业务要求如下:在jsp页面(jFactoryCreate.jsp)上输入数据时,转到后台,并输入到数据库. jFactoryCreate.jsp页面:

  7. 编译内核出现"mkimage" command not found - U-Boot images will not be built

    参考链接: http://spyker729.blogspot.com/2010/07/mkimage-command-not-found-u-boot-images.html 制作uImage的工具 ...

  8. UCASE() 函数

    UCASE() 函数 UCASE 函数把字段的值转换为大写. SQL UCASE() 语法 SELECT UCASE(column_name) FROM table_name

  9. Service层事务不能回滚的解决方式

    1.在service方法里面如果对异常进行了捕获的话,该事务是不会进行回滚的        默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚.          spr ...

  10. 【BZOJ】1096: [ZJOI2007]仓库建设(dp+斜率优化)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1096 首先得到dp方程(我竟然自己都每推出了QAQ)$$d[i]=min\{d[j]+cost(j+ ...