SpringBoot2.x基础篇:使用YAML代替Properties的对应配置
2020/3/26 17:01:51
本文主要是介绍SpringBoot2.x基础篇:使用YAML代替Properties的对应配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
知识改变命运,撸码使我快乐,2020继续游走在开源界
点赞再看,养成习惯
给我来个Star吧,点击了解下基于SpringBoot的组件化接口服务落地解决方案
YAML
是一种用于指定层次结构配置数据的便捷格式,SpringBoot
内部通过集成SnakeYAML来支持解析,那我们如果来使用YAML
格式来代替Properties
,我们需要了解每一种Properties
对应YAML
的配置代替方式。
推荐阅读
普通配置
普通的方式比较简单直接,不存在数组
、集合
、子类
等相关配置,我们通过Properties
方式编写了如下的配置内容:
system.config.max-value=100 system.config.min-value=10 system.config.location=classpath:/configs 复制代码
那这种方式对应的YAML
配置是什么样子的呢?
如下所示:
system: config: min-value: 10 max-value: 100 location: classpath:/configs 复制代码
这两种方式对比之下,
YAML
层次感鲜明,更直观的查看配置信息,而Properties
这种方式配置前缀相对来说是冗余的,如果配置前缀过长,每一行的配置内容则会更长。
List配置
如果你需要添加List/Set/Array
类型的配置信息,使用Properties
方式编写如下所示:
system.config.ports[0]=8080 system.config.ports[1]=8081 system.config.ports[2]=8082 复制代码
注意事项:配置的索引从0开始。
对应上面配置的YAML
实现如下所示:
system: config: ports: - 8080 - 8081 - 8082 复制代码
无论是Properties
还是YAML
格式,这种List
的配置内容都可以通过如下的方式获取:
@Configuration @ConfigurationProperties(prefix = "system.config") @Data public class LoadListConfig { private List<String> ports; } 复制代码
List内实体配置
如果你的List
内不是基本数据类型,而是一个实体类,使用Properties
的配置方式如下所示:
system.users[0].username=admin system.users[0].email=yuqiyu@vip.qq.com system.users[1].username=hengboy system.users[1].email=jnyuqy@gmail.com 复制代码
其实跟上面的List配置
差不多,不过如果你需要配置每一个索引内字段的值,就要一一指定配置值。
对应上面的YAML
实现如下所示:
system: users: - username: admin email: yuqiyu@vip.qq.com - username: hengboy email: jnyuqy@gmail.com 复制代码
每一个
-
其实代表集合内的一个元素。
获取List实体
配置时我们可以通过如下的方式:
@Data @Configuration @ConfigurationProperties(prefix = "system") public class LoadSystemUserConfig { private List<User> users; @Getter @Setter public static class User { private String username; private String email; } } 复制代码
YAML缺点
一种方案的诞生是为了解决相应的问题,虽然说存在既有道理,但是每一种方案也不是完美的都有自身的缺点。
下面简单说说YAML
的缺点:
- 配置时缩进要特别注意,如果存在空格缩进对应不齐就会出现问题
- 在
SpringBoot
内无法通过@PropertySource
注解加载YAML
文件。
这篇关于SpringBoot2.x基础篇:使用YAML代替Properties的对应配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26大厂数据结构与算法教程:入门级详解
- 2024-12-26大厂算法与数据结构教程:新手入门指南
- 2024-12-26Python编程入门指南
- 2024-12-26数据结构高级教程:新手入门及初级提升指南
- 2024-12-26并查集入门教程:从零开始学会并查集
- 2024-12-26大厂数据结构与算法入门指南
- 2024-12-26大厂算法与数据结构入门教程
- 2024-12-26二叉树入门教程:轻松掌握基础概念与操作
- 2024-12-26初学者指南:轻松掌握链表
- 2024-12-26平衡树入门教程:轻松理解与应用