apollo动态刷新ConfigurationProperties 配置类

该博客介绍了如何使用Apollo配置监听器实现配置变更的监听和处理。通过`@ApolloConfigChangeListener`注解,当配置发生变化时,程序会捕获并打印变更的详细信息,并发布环境变更事件。同时,展示了如何定义一个`DataConfig`类来管理如`audios`,`lrcs`和`joinType`等数据配置。
摘要由CSDN通过智能技术生成
@Slf4j
@Configuration
public class ApolloConfigListener implements ApplicationContextAware {


    private ApplicationContext applicationContext;
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }

    @ApolloConfigChangeListener
    private void onChange(ConfigChangeEvent changeEvent) {
        log.info("【Apollo-config-change】start");
        for (String key : changeEvent.changedKeys()) {
            ConfigChange change = changeEvent.getChange(key);
            log.info("key={} , propertyName={} , oldValue={} , newValue={} ", key, change.getPropertyName(), change.getOldValue(), change.getNewValue());
        }
        this.applicationContext.publishEvent(new EnvironmentChangeEvent(changeEvent.changedKeys()));
        log.info("【Apollo-config-change】end");
    }
}

需要引入依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-context</artifactId>
            <version>2.1.0.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-actuator</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.security</groupId>
                    <artifactId>spring-security-crypto</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

配置

@Configuration
@ConfigurationProperties(prefix = "data")
@Data
public class DataConfig {

    private List<String> audios;

    private List<String> lrcs;

    private Map<Integer,String> joinType;


}
data.audios=AA,BB
data.lrcs=AA,BB
data.joinType.0=API1
data.joinType.1=API2
data.joinType.2=API3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值