SpringBoot中@ConfigurationProperties对于多层嵌套参数的正确加载方法

By | 2020年4月10日

SpringBoot中@ConfigurationProperties对于多层嵌套参数的正确加载方法

今天想重构一下Kafka代码,将之前用@Value引入的一些参数全部替换掉,因为可读性和维护性太差,这是以前的样子。

有同学可能会问,为什么不直接用spring集成好的Kafka,因为它封装的太好,反而不能使用一些原生的接口,所以打算重构一遍代码,至于重构的过程和优化的内容,留给以后的文章去讲解,这篇只是想使用@ConfigurationProperties把参数格式化掉,可以直接提取使用,在网上搜了一些文章,写的很乱,有的甚至完全不能实现功能,最后在一通乱怼下终于符合了自己的需求,Kafka的配置参数存在多层结构,所以不能直接配置参数。

只要是类似于这样结构的参数,都可以参考我的写法,理论上是没有问题的。

下面是我怼出来的写法

这里用到了lombok,代码结构也比较简洁,参数中间的-可以用大写来替代,spring会自动匹配的。

错误的做法

下面这种是很多文章里写的,测试了很多遍,基本获取不到参数,就能得到bootstrapServers。

发表评论

电子邮件地址不会被公开。 必填项已用*标注