温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SpringBoot中YAML语法怎么用及要注意哪些点

发布时间:2022-02-16 13:42:36 来源:亿速云 阅读:337 作者:iii 栏目:开发技术

这篇文章主要介绍“SpringBoot中YAML语法怎么用及要注意哪些点”,在日常操作中,相信很多人在SpringBoot中YAML语法怎么用及要注意哪些点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot中YAML语法怎么用及要注意哪些点”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

YAML语法及几个注意点

yaml后缀名可以是.yml或者.yaml

对于语法注意的一点是固定的缩进来控制它的层级关系,它的key: value形式必须要要在中间有空格

实体类(setter,getter,toString省略)如下

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String lastName;
    private Integer age;
    private List<String> hobbies;
    private Map<String,Object> map;
    private Dog dog;
}

在使用了@ConfigurationProperties注解过后idea会给你发出警告,可以不管,但是这样你在yml中配置时就没有提示功能,所以点进警告,这时你会发现可能出现网页找不到的情况,这时候你只需要将网址栏的版本降低即可,如下

SpringBoot中YAML语法怎么用及要注意哪些点

将框中的内容放进pom,然后重新运行项目,在yaml中就会对你自己写的标注了@ConfigurationProperties的类有了代码提示功能

public class Dog {
    private String name;
    private Integer age;
}

application.yml配置文件进行值的注入

person:
  last-name: 张三
  age: 25
  hobbies:
    - 篮球
    - 跑步
    - 吉他
  map: {k1: 你好,k2: 世界}
  dog:
    name: 狗东西
    age: 10

列表可以用上面的形式也可以用下面的形式,看清楚光标处有空格,对象类型就可以用{},如下面的Map

SpringBoot中YAML语法怎么用及要注意哪些点

yaml的松散绑定

Java中lastName的驼峰命名法,yaml中可以用其他的形式来表示。如

last_name
last-name
lastName
LASTNAME

首次玩这个如果想在测试类里面测试,有可能你会出现运行不了一直卡在Maven。。。的框里面,解决方案:我的错误收集笔记

YAML语法简易入门

可以查看官方或者其他的博客资料,会有一大堆的内容

YAML语言的设计参考了JSON,XML和SDL等语言。YAML 强调以数据为中心,简洁易读,编写简单。

有意思的命名:

AML全称是”YAML Ain&rsquo;t a Markup Language”(YAML不是一种置标语言)的递归缩写。 在开发的这种语言时,YAML 的意思其实是:”Yet Another Markup Language”(仍是一种置标语言)。

语法特点

  • 大小写敏感

  • 通过缩进表示层级关系

  • 禁止使用tab缩进,只能使用空格键 (个人感觉这条最重要)

  • 缩进的空格数目不重要,只要相同层级左对齐即可

  • 使用#表示注释

支持的数据结构

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

  • 纯量(scalars):单个的、不可再分的值

双引号和单引号的区分

双引号"":不会转义字符串里面的特殊字符,特殊字符作为本身想表示的意思。

yamlname: "123\n123"

输出: 123 换行 123

如果不加引号将会转义特殊字符,当成字符串处理

值的写法

1.字符串

使用”或”“或不使用引号

yamlvalue0: 'hello World!'
value1: "hello World!"
value2: hello World!

2.布尔值

true或false表示。

3.数字

yaml12 #整数
014 # 八进制整数
0xC #十六进制整数
13.4 #浮点数
1.2e+34 #指数
.inf空值 #无穷大

4.空值

null或~表示

5.日期

使用 iso-8601 标准表示日期

yamldate: 2018-01-01t16:59:43.10-05:00

在springboot中yaml文件的时间格式 date: yyyy/MM/dd HH:mm:ss

6.强制类型转换(了解)

YAML 允许使用个感叹号!,强制转换数据类型,单叹号通常是自定义类型,双叹号是内置类型。

yamlmoney: !!str
123
date: !Boolean
true

内置类型列表

yaml!!int # 整数类型 
!!float # 浮点类型 
!!bool # 布尔类型 
!!str # 字符串类型 
!!binary # 也是字符串类型 
!!timestamp # 日期时间类型 
!!null # 空值 
!!set # 集合 
!!omap,!!pairs # 键值列表或对象列表
!!seq # 序列,也是列表 !!map # 键值表

7.对象(重点)

Map(属性和值)(键值对)的形式: key:(空格)v :表示一堆键值对,空格不可省略。

yamlcar:
    color: red
    brand: BMW

一行写法

yamlcar:{color: red,brand: BMW}

相当于JSON格式:

json{"color":"red","brand":"BMW"}

8.数组

一组连词线开头的行,构成一个数组。

yamlbrand:
   - audi
   - bmw
   - ferrari

一行写法

yamlbrand: [audi,bmw,ferrari]

相当于JSON

json["auri","bmw","ferrari"]

9.文本块

|:使用|标注的文本内容缩进表示的块,可以保留块中已有的回车换行

yamlvalue: |
   hello
   world!

输出结果:hello 换行 world!

+表示保留文字块末尾的换行,-表示删除字符串末尾的换行。

yamlvalue: |
hello
value: |-
hello
value: |+
hello

输出:hello\n hello hello\n\n(有多少个回车就有多少个\n)

注意 “|” 与 文本之间须另起一行

:使用 > 标注的文本内容缩进表示的块,将块中回车替换为空格,最终连接成一行

yamlvalue: > hello
world!

输出:hello 空格 world!

注意 “>” 与 文本之间的空格

10.锚点与引用

使用 & 定义数据锚点(即要复制的数据),使用 * 引用锚点数据(即数据的复制目的地)

yamlname: &a yaml
book: *a
books: 
   - java
   - *a
   - python

输出book: yaml

输出books:[java,yaml,python]

注意*引用部分不能追加内容 

到此,关于“SpringBoot中YAML语法怎么用及要注意哪些点”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI