- 微服务分布式架构基础与实战:基于Spring Boot + Spring Cloud
- 张方兴
- 434字
- 2020-08-27 16:43:13
1.7 【实例】使用YAML配置文件
1.7.1 实例背景
本实例将使用application.yml资源配置文件替代application.properties资源配置文件,并对照properties文件编写存储相同数据的YAML文件。
1.7.2 原properties文件
在application.properties资源配置文件中输入其他格式的数据,目的是了解在Spring Boot的配置文件中,无论YAML文件还是properties文件,都能存储除Spring Boot预定义参数外的自定义参数,通过如@Value、@ConfigurationProperties、@EnableConfigurationProperties等相关注解从资源配置文件中提取自定义参数。
在下述代码中org.zfx.boot.date能在Java代码中获取并转换成List。org.zfx.boot.date参数的配置也更能体现YAML文件和properties文件的书写区别。
原application.properties文件代码如下。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_39_1.jpg?sign=1738941578-L2r7KNSHbwhWNbTMHO8VBH8NPGVHnzXA-0-36be2f252694b17c784711c8b20f50d7)
1.7.3 转换格式后的YAML文件
将原appliaction.properties文件转换成application.yml文件后,application.yml文件代码如下。在下述代码中,zfx前有2个空格,boot前有4个空格,another前有6个空格,以此类推。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_39_2.jpg?sign=1738941578-cKjoSNswQJPVFt8w8EUKilgajRrR7k8a-0-bd454b49619474a3e7e1afb9aac62ce0)
假设org是一个对象,则org对象含有zfx对象,zfx对象含有boot对象,boot对象含有another对象、book对象、List<String>date(或List<int>date、List<Date>date)对象。
1.7.4 实例易错点
1.YAML文件不能用TAB键缩进
YAML文件一定要用2*n空格来书写,若用TAB键则会报以下错误。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_39_3.jpg?sign=1738941578-rlS0Ckxn5vOYWeH6to0xfbItzngATYoU-0-56fbfa21c43d2acdb04eeaaea7a32c45)
2.YAML文件空格过多或过少
YAML文件每个参数前一定要用2*n个空格来书写,若多一个空格或少一个空格则会报以下错误。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_40_1.jpg?sign=1738941578-nzKJjyJNVX8grfznBapdCqCxtyur7ejN-0-a4ede51291126207946a83e63c0f0c6f)