
上QQ阅读APP看书,第一时间看更新
2.7 YAML配置
2.7.1 常规配置
YAML是JSON的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代application.properties。在创建一个Spring Boot项目时,引入的spring-boot-starter-web依赖间接地引入了snakeyaml依赖,snakeyaml会实现对YAML配置的解析。YAML的使用非常简单,利用缩进来表示层级关系,并且大小写敏感。在Spring Boot项目中使用YAML只需要在resources目录下创建一个application.yml文件即可,然后向application.yml中添加如下配置:

这一段配置等效于application.properties中的如下配置:

此时可以将resources目录下的application.properties文件删除,完全使用YAML完成文件的配置。
2.7.2 复杂配置
YAML不仅可以配置常规属性,也可以配置复杂属性,例如下面一组配置:

像Properties配置文件一样,这一段配置也可以注入一个Bean中,代码如下:

YAML还支持列表的配置,例如下面一组配置:

这一组配置可以注入如下Bean中:

YAML还支持更复杂的配置,即集合中也可以是一个对象,例如下面一组配置:

这组配置在集合中放的是一个对象,因此可以注入如下集合中:

在Spring Boot中使用YAML虽然方便,但是YAML也有一些缺陷,例如无法使用@PropertySource注解加载YAML文件,如果项目中有这种需求,还是需要使用Properties格式的配置文件。