从Apollo配置中取出多个配置封装在list集合

Apollo也是最近的项目在用,还不熟悉,写这个只是自己刚好碰到的问题困扰了很久,记录下来做个提醒。

##问题问题描述

Apollo上的配置是k-v格式,当时我有4个配置,前缀名是一样的如下:

kafka.broker-setting[1].kafka-topic = another-kafka-topic
kafka.broker-setting[1].meta-topic = another-meta-topic
kafka.broker-setting[0].kafka-topic = icif-mss-privbonus-topic
kafka.broker-setting[0].meta-topic = mss-privbonus-topic

给我的要求是拿到kafka.broker-setting,
类似一个private List brokerSetting;的属性来接收,
然后会有2条记录,每个记录都有kafkatopic和metatopic属性,我最开始想的是list里面用map<String,String>来接收,然而并不行,期间尝试各种接收方式都拿不到。
最后找到以前别人做过的类似的配置,才明白是如何操作的(新手请勿见怪),下面附上最后成功的代码:

Apollo上的配置就是上面的直接以文本的方式发布上去就可以;
代码中用来接收的属性是 private List 《MetaQKafkaMapping>》brokerSetting;
其中MetaQKafkaMapping是自定义的一个类,包含kafkaTopic和metaTopic两个属性,需要有get,set方法
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = “kafka”)
public class MetaQProperties{
private List <MetaQKafkaMapping》brokerSetting;//这里博客上如果写大于号就看不到里面的内容了,见谅
}
@Getter
@Setter
public class MetaQKafkaMapping{
private String metaTopic;
private String kafkaTopic;
}
需要注意的是自动
自定义类中的属性名要跟这里一样,不能是metaQtopic,这样只能拿到一个属性;
这个接收的属性 我是放在一个MetaQProperties对象里面,这个bean要被spring管理,所以要有@Component注解,还需要一个@ConfigurationProperties(prefix = “kafka”)注解来获取上述4条配置,
这个bean里面也可以放其他的配置,只是属性上要加上@value(${“Apollo中的key全名”})来自动获取。

以上我所需要的配置都已经成功拿到,源代码在开发机上,没有网络,所以只能口述,我觉得自己能看懂了233333!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值