11-Nacos-监听配置变化

核心是 @NacosConfigListener

1、触发机制

1. Nacos配置初始化加载时被调用一次。

2. Nacos配置文件发生变化时

3. Nacos的数据持久层发生变化时。Nacos支持多种数据持久化方式,当数据持久化方式切换时,也会触发@NacosConfigListener标注的方法。

4. 其他的配置变化。除上述情况外,任何可能影响Nacos配置的变化,都会触发@NacosConfigListener标注的方法。

注意添加依赖

不清楚的可以看nacos专栏中之前的文章

05-Nacos-配置中心接入-CSDN博客


        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        

2、配置类

@NacosValue 支持动态刷新

autoRefreshed=true指的是nacos中配置发生改变后会刷新,false代表只会使用服务启动时候读取到的值

@Configuration
@NacosPropertySource(dataId = "input", groupId = "node1-server", autoRefreshed = true)
@NacosPropertySource(dataId = "sink", groupId = "node1-server", autoRefreshed = true)
public class NacosConfig {

    @NacosValue(value = "${input}", autoRefreshed = true)
    private String input;

    @NacosValue(value = "${sink}", autoRefreshed = true)
    private String sink;

    public String getInput() {
        return input;
    }

    public String getSink() {
        return sink;
    }
}

3、监听器

开启监听,当配置发生变化时,会进行通知回调。

@Autowired
private NacosConfig nacosConfig;


@NacosConfigListener
public void onChange(String config, RefreshMode mode, String dataId, String group) throws NacosException {
   System.out.println("配置已经刷新,dataId:" + dataId + ", group:" + group 
       + ",新值:" + config); 
}

你可能感兴趣的:(Nacos,配置动态刷新)