yaml可以说是一个标记语言k,在springbot中使用一般是为了配置纯数据配置项,当在项目中创建了这个文件后,他会和application文件一起生效,都算是boot的配置文件,后缀是yaml或yml
基本语法
-
key和value之间有空格
-
k: v
-
大小写区分
-
不能用Tab键,只能空格
-
使用缩进表示层级关系
-
缩进的空格数不重要重要的是相同层级之间的元素要左对齐
-
#表示注释
-
字符串不用加引号,引号会被解析,会被转义'/不转义"
数据表示
-
字面量:不可分割、单个的值。number、date、string、Boolean、null
k: v
-
对象:键值对集合。map、hash、set、object
一行以内:k: {v1,v2,v3...}
多行:
k:
k1: v1
k2: v2
...
-
数组:一组按顺序排列的值。array、list、queue
行内写法:k: [v1,v2,v3...] #或者 k: - v1 - v2 ...
使用
在bean中
这个bean要和配置文件进行绑定首先要注册为组件,然后将它绑定为与配置文件中前缀是ccc的字段相关
@Component
@Data
@ConfigurationProperties(prefix = "ccc")
public class Can {
private String name;
private String id;
private String country;
private Fruits fruits;
private String[] someone;
private Map> people;
}
在yaml配置文件中
同一级的元素缩进是同一级的,在设置值的时候注意缩进和格式,value之前要有一个空格。字符串不用加引号双引号。
加单双引号是为了转义或不转义
现在假如 name: 老干妈 n 你好,这个字段加了单引号,输出的是 name: "老干妈 n 你好" 被转义了,本来这个符号会对值进行换行,现在并没有
加了双引号,输出的是 老干妈 你好 这时加的n换行了,说明没有转义
ccc: name: 老干妈 id: abc12312 country: china fruits: name: apple price: 16.8 someone: [a,b,c] people: older: name: banana price: 168 children: name: lemon price: 199使用依赖改善开发
在进行yaml配置文件编写时,对属性值进行设置值时没有提示,降低了开发感受,于是SpringBoot官方文档里面的ApplicationMateData 里面有一个[Configuration metadata-->> Configuring the Annotation Processor]说了一个底层依赖,将他添加到项目中,重启项目就可以在yaml文件中有提示了
org.springframework.boot spring-boot-configuration-processortrue



