这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战
写在前面
SpringBoot都知道。一个配置文件走天下,结束了以前的SSM工程结构多配置文件的格局。最后一统天下。
大家都知道SpringBoot项目中管理配置文件的分为两种风格,其一是properties风格,其二是yaml风格。
我比较喜欢yaml风格,因为配置文件看起来层次感比较强。
取配置
yaml风格的语法可以总结为两点,采用key:value的配置形式;使用缩进表示层级关系。
我们都知道 直接取配置文件的是分两类 第一是直接取配置文件,比如我们直接就取个值,第二类是取多个,比如是list,比如取多个值(其实就是转实体)
第一种
yaml文件
person:
userName: 一点东西
java文件
//直接取配置文件
@Value("${person.userName}")
private String userName;
第二种,下面我们通过一个实例来介绍yaml风格的语法及书写格式即将配置文件中值绑定给实体类。
1、首先需要新建两个类Person和Pet类,Pet类作为引用数据类型出现在Person中。
首先我们通过@ConfigurationProperties注解和@Component注解(关于注解 我们后面)
其一为@Component表示将这个类放入Spring容器托管。
其二为@ConfigurationProperties(prefix = "person")表示配置文件中以person开头的配置才会被映射到实体类的属性中。
新建yaml风格配置文件application.yml并在在yml文件中给实体类中的属性开始赋值。
从图中可以看出person作为第一级配置和@ConfigurationProperties(prefix = "person")中的prefix相同。
其次是对Person类中的各个属性赋值。
-
我们发现userName、boss、birth、age都是直接赋值即可。
-
interests作为数组类型,其赋值形式是在[]直接放入所需元素。
-
animal作为List类型和数组类型赋值形式相同。
-
score作为Map集合类型采用{}形式,其中采用key:value形式赋值。
-
salarys作为set集合赋值形式同数组和List集合。
-
pet作为对象属性值,会产生二级赋值,也就是要写出Pet类中具体的属性名,并采用key:value形式赋值。
-
allPest是个比较综合的类型,Map集合中包括了List集合和Pet类型。
下面来测试在配置文件中的格式是否绑定正确?
在Controller层写获取Person对象接口。
启动SpringBoot项目并在浏览器测试,发现能准确获取到数据。
好了 关于读取配置文件的格式转化就到这里,我们下期再见 加油!!!
弦外之音
感谢你的阅读,如果你感觉学到了东西,您可以点赞,关注。也欢迎有问题我们下面评论交流
加油! 我们下期再见!
给大家分享几个我前面写的几篇骚操作