YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。
key: value value和:之间有一个空格
大小写敏感:区分大小写
使用缩进表示层级关系
缩进不允许使用Tab,只允许使用空格。在Idea中可以使用Tab
缩进的空格数不重要,只要相同的层级的元素左对齐即可
例如我在yaml配置一个兴趣,不管前面有多少个空格,只要左对齐了,这三个兴趣都是一个层级的 interests: - 尤克里里 - 篮球 - 石原里美
‘#’表示注释
''和""表示字符串内容,会转义/不会转义。例如名字"Zhangsan \n 李四",单引号会原封不动的输出,但是双引号会将\n变成换行符输出
k: v 直接写就行,记得:和v之间有个空格,:只能用英文
行内写法:k: {k1:v1,k2:v2}
或者
k:
k1: v1,
k2: v2
行内写法: k: [v1,v2,v3]
或者
k:
- v1
- v2
- v3
- package com.you.boot.bean;
-
- import lombok.Data;
- import lombok.ToString;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.stereotype.Component;
-
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
-
- @Data
- @ToString
- @Component
- @ConfigurationProperties(prefix = "person")
- public class Person {
- private String userName;
- private Boolean boss;
- private Date birth;
- private Integer age;
- private Pet pet;
- private String[] interests;
- private List<String> animal;
- private Map<String,Object>score;
- private Set<Double> salarys;
- private Map<String,List<Pet>>allPets;
- }
- import lombok.Data;
- import lombok.ToString;
-
- @Data
- @ToString
- public class Pet {
- private String name;
- private Double weight;
- }
application.yaml,以后忘了写法,看这个
- person:
- userName: Zhangsan
- # 双引号会转义一些特殊字符
- # 单引号不会转义一些特殊字符 如/n
- boss: true
- birth: 2022/7/1
- age: 1
- # interests: [尤克里里,吉他]
- interests:
- - 尤克里里
- - 篮球
- - 石原里美
- animal: [旺财,小猪]
- # score:
- # english: 80
- # math: 90
- score: {english: 80,math: 90}
- salarys: [1200.00,12000.00,9999.00]
- pet:
- name: 小猪
- weight: 99.99
- allPets:
- sick:
- - {name: 小猪,weight: 99.99}
- - name: 小鸡
- weight: 88.88
- - name: 阿猫
- weight: 70.00
- health:
- - {name: 阿花,weight: 20.00}
- - {name: 阿叶,weight: 30.00}
自己写的一些变量,在yaml编写的时候没有提示。
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configuration-processor</artifactId>
- <optional>true</optional>
- </dependency>
导入依赖后,重启一下项目,自己定义的变量就有提示了
我们写的是userName,提示给的是user-name 也是可以的。
因为这一块只是方便我们编程,打包的时候没有用,所以我们加上这一段代码,让项目打包的时候不打包这个处理器
- <configuration>
- <excludes>
- <exclude>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configurationprocessor</artifactId>
- </exclude>
- </excludes>
- </configuration>
【继续努力~~~】