1,基本介绍
(1)YAML 是 JSON 的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代 application.properties。
(2)在创建一个 SpringBoot 项目时,引入的 spring-boot-starter-web 依赖间接地引入了 snakeyaml 依赖, snakeyaml 会实现对 YAML 配置的解析。
(3)YAML 的使用非常简单,利用缩进来表示层级关系,并且大小写敏感。
2,YAML 配置与 Properties 配置的比较
properties 写法
- 可以使用 @PropertySource 注解加载自定义的 Properties 配置文件,但无法加载自定义的 YAML 文件。
- YAML 支持列表的配置,而 Properties 不支持。
(2)以空格的缩进来控制层级关系;只要时左对齐的一列数据,都是同一个层级的。
(3)属性和值都是大小敏感
2.1、基本语法
(1)key: value。冒号与value之间必须有一个空格。
(2)大小写敏感。
(3)使用缩进表示层级关系。
(4)缩进不允许使用tab,只能使用空格。
(5)缩进的空格数不重要,只要相同层级的元素左对齐即可。
(6)# 后面跟注释内容
(7)字符串无须加引号。"“会进行转义。比如’\n’就输出\n,但”\n"则会输出换行。
3、值的写法:
1)字面量:单个的、不可再分的值。date、boolean、string、number、null
值可以不加双引号或单引号,都默认表示字符串加双引号:支持转义字符
加单引号:不支持转义字符
2)对象:键值对的集合。map、hash、set、object
3)数组:一组按次序排列的值。array、list、queue
集合对象
整合
4、取值
方法1@value("{}")取值
方法2、@ConfigurationProperties
yml中配置数据库连接
编写jdbc实体类及getter setter 方法
注入
方法3、Environment
5、多环境配置
我们还可以通过在代码中指定使用哪种环境的配置
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(TestApplication.class);
builder.application().setAdditionalProfiles("dev");
builder.run(args);
}
}
我们可以把多个环境的配置写在一个文件里,可以使用符号
spring:
profiles:
# 使用开发环境的配置
active: dev
---
# 开发环境配置
server:
port: 8888
spring:
profiles: dev
---
# 生产环境配置
server:
port: 8888
spring:
profiles: prod