https://www.cnblogs.com/strongmore/p/14219180.html
字面量:单个的、不可再分的值。date、boolean、string、number、null
保存形式为 key: value 如图

#行内写法:
k: {k1:v1,k2:v2,k3:v3}
monster: {id: 100,name: 牛魔王}
#或换行形式
k:
k1: v1
k2: v2
k3: v3
monster:
id: 100
name: 牛魔王

#行内写法:
k: [v1,v2,v3]
hobby: [打篮球, 打乒乓球, 踢足球]
#或者换行格式
k:
- v1
- v2
- v3
hobby:
- 打篮球
- 打乒乓球
- 踢足球

创建项目 configuration , 完成 yaml 的使用
运行效果


<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.hspedugroupId>
<artifactId>configurationartifactId>
<version>1.0-SNAPSHOTversion>
<parent>
<artifactId>spring-boot-starter-parentartifactId>
<groupId>org.springframework.bootgroupId>
<version>2.5.3version>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-configuration-processorartifactId>
<optional>trueoptional>
dependency>
dependencies>
project>
3.创建src\main\java\com\llp\springboot\bean\Car.java
@Data
public class Car {
private String name;
private double price;
}
4.创建src\main\java\com\llp\springboot\bean\Monster.java
@Data
@Component
@ConfigurationProperties(prefix = "monster")
public class Monster {
private Integer id;
private String name;
private Integer age;
private Boolean isMarried;
private Date birth;
private Car car;
private String[] skill;
private List<String> hobby;
private Map<String, Object> wife;
private Set<Double> salaries;
private Map<String, List<Car>> cars;
}
monster:
id: 100
name: "牛魔王~~"
age: 500
isMarried: true
birth: 2000/10/10
#对象
# car: {name: 宝马, price: 200000} #行内格式
car: #换行格式
name: 宝马~
price: 300000
#数组
# skill: [芭蕉扇, 牛魔拳] #行内格式
skill:
- 芭蕉扇~
- 牛魔拳~
# hobby: [喝酒, 吃肉] #行内格式
hobby:
- 喝酒~
- 吃肉~
#map-属于对象
# wife: {no1: 玉面狐狸, no2: 铁扇公主} #行内风格
wife:
no1: 玉面狐狸~
no2: 铁扇公主~
# salaries: [10000,20000] #行内风格
salaries:
- 10000
- 20000
cars: #因为cars k-v v是list 所以我们使用换行风格
group1:
- {name: 奔驰, price: 300000}
- name: 保时捷
price: 400000
group2:
- {name: 奔驰~, price: 100000}
- name: 保时捷~
price: 500000
6.创建src\main\java\com\llp\springboot\controller\HelloController.java
@RestController
@RequiredArgsConstructor
public class HelloController {
private final Monster monster;
@RequestMapping("/monster")
public Monster monster(){
return monster;
}
}
7.启动项目测试

如 果 application.properties 和 application.yml 有 相 同 的 前 缀 值 绑 定 , 则 application.properties 优先级高, 开发时,应当避免
字符串无需加引号, 这个在前面已经演示了, 如果你用" " 或者 ’ ’ 包起来, 也可以
解决 yaml 配置文件,不提示字段信息问题
(1)在编写 application.yml 文件时,没有提示 Monster 的字段信息, 非常不方便
(2)在 pom.xml 加 入 spring-boot-configuration-processor 依 赖
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-configuration-processorartifactId>
<optional>trueoptional>
dependency>
(3)对 application.yml 文件编辑,就会提示字段, 提示: 输入你在 Bean 配置的 prefix 名 字就会提示


(4)如果还没有提出提示, 可以安装一个 yaml 插件来搞定.
