核心是 @NacosConfigListener

1、触发机制

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

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

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

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

注意添加依赖

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

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


        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

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); 
}

GitHub 加速计划 / na / nacos
29.83 K
12.75 K
下载
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
最近提交(Master分支:3 个月前 )
4334cd16 * Support custom client configuration timeout.(#12748) * Add UT.(#12748) 17 天前
b04d2266 21 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐