【springboot】7、yaml
  TEZNKK3IfmPf 2023年11月12日 33 0

基本介绍

YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。Clark Evans在2001年首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。当前已经有数种编程语言或脚本语言支持(或者说解析)这种语言。

YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名

说的简介一点yaml就是以数据为中心的一种标记语言,经常用于配置文件的使用,例如springboot中的application.yaml就用于配置文件

基本语法

  1. 形式为 key: value;注意:后面有空格
  2. 区分大小写
  3. 使用缩进表示层级关系
  4. 缩进不允许使用 tab,只允许空格 [有些地方也识别 tab , 推荐使用空格]
  5. 缩进的空格数不重要,只要相同层级的元素左对齐即可
  6. 字符串无需加引号
  7. yaml 中, 注释使用 #

数据类型

  1. 字面量:单个的、不可再分的值。date、boolean、string、number、null,写法如下
name: 汤姆
age: 18
isMarried: false
  1. 对象:键值对的集合, 比如 map、hash、set、object,写法如下
# 对象类型的写法有2种,分为行内写法和换行写法
# 行内写法使用{}进行标识,然后用,分隔每一项
  car: {
     
       name: 保时捷, price:1234567.8}
# 换行写法,每一项就是kv进行表示
  car:
    name: 保时捷
    price: 1234567.8

3.数组:一组按次序排列的值, 比如 array、list、queue等,写法如下

# 数组类型的写法也有2种,也是分为行内写法和换行写法
# 行内写法就是用[]进行标识,中间每个值使用,进行分隔
  hobby: [篮球,羽毛球,乒乓球]
# 换行写法使用-标识每一项
  hobby:
    - 篮球
    - 羽毛球
    - 乒乓球

实例运用

下面是我创建的一个User类和Car类
【springboot】7、yaml
【springboot】7、yaml
然后我们在application.yaml中填充User中的值
【springboot】7、yaml

user:
  name: 汤姆
  age: 18
# hobby: [篮球,羽毛球,乒乓球]
  hobby:
    - 篮球
    - 羽毛球
    - 乒乓球
# friends: { k1: 杰瑞,k2: 旺财 }
  friends:
    k1: 杰瑞
    k2: 旺财
# car: {name: 保时捷, price:1234567.8}
  car:
    name: 保时捷
    price: 1234567.8

创建一个Controller进行访问,返回User,查看是否可以成功使用
【springboot】7、yaml
下面启动项目,使用postman进行测试
【springboot】7、yaml
可以发现我们可以成功进行绑定,yaml的语法就没有问题

细节说明

1.如 果我们同时使用 application.properties 和 application.yml 作为配置文件,而2个文件又有 相 同 的 前 缀 值 绑 定 ,则application.properties 优先级高, 开发时,应当避免
2.字符串不需要引号,如果加上引号也不影响,'和"都不影响
3. 一定要记得在:后面有一个空格

总结

如果学过JavaScript或者json,那么yaml的语法应该是十分简单的,基本没什么变化,自己写几遍就会了,yaml在springboot中作为配置文件我感觉比properties好用很多,熟练掌握是必要的。对于yaml中的嵌套,根据语法进行类推就行了,就不再赘述了。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
TEZNKK3IfmPf