1、YAML不是一种标记语言,以空白符号和分行来分隔资料
2、采用的配置格式不像properties的配置那样以单纯的键值对形式来表示,而是以类似大纲的形式来表示。下面是 一端YAML配置信息
environments:
dev:
url: http://dev.bar.com
name: Developer Setup
prod:
url: http://foo.bar.com
name: MyCool App
通过YAML的配置方式我们可以看到,配置信息利用 阶梯化缩进的方式,其结构更为清晰易读,同时配置内容的字符量也得到显著减少。除此之外,YAML还可以在一个单个文件中通过使用spring.profiles属性来定义多个不同的环境配置。例如下面的内容,在指定为test环境时,server.port将使用8882端口;而在prod环境中,server.port将使用8883端口;如果没有指定环境,server.port将使用8881端口。
server:
port: 8881
---
spring:
profiles: test
server:
port: 8882
---
spring:
profiles: prod
server:
port: 8883
注意:YAML目前还有一些不足,它无法通过@PropertySource注解来加载配置。但是,YAML将属性加载到内存中保存的时候是有顺序的,所以当配置文件中的信息需要具备 顺序含义时,YAML的配置方式比properties配置文件 更有优势。