POM文件
在POM中增加如下依赖
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.4.1</version>
</dependency>
监听配置
如果希望 Nacos 推送配置变更,可以使用 Nacos 动态监听配置接口来实现。
package com.SCND.Controller;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Properties;
import java.util.concurrent.Executor;
@RestController
public class AddListener {
@GetMapping("/addListener")
public String testListener() throws NacosException {
addListener("example.properties","DEFAULT_GROUP",print());
return "testListener is ok....!";
}
public Listener print(){
System.out.println("callback++++++++++");
return null;
}
public void addListener(String dataId, String group, Listener listener) throws NacosException {
String serverAddr = "127.0.0.1:8848";
dataId = "example.properties";
group = "DEFAULT_GROUP";
int timeoutMs = 5000;
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
String content = configService.getConfig(dataId, group, timeoutMs);
System.out.println(content);
configService.addListener(dataId, group, new Listener() {
@Override
public void receiveConfigInfo(String configInfo) {
System.out.println("recieve:" + configInfo);
}
@Override
public Executor getExecutor() {
return null;
}
});
// 测试让主线程不退出,因为订阅配置是守护线程,主线程退出守护线程就会退出。正式代码中无需下面代码
/* while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}*/
}
}

图1 Nacos修改配置

图2 浏览器访问监听接口

图3 控制台显示调用结果
链接:https://pan.baidu.com/s/13k_ek_WrzcB1dxXEFwsRtQ
提取码:2zfv





