用于监听 ACM 配置的变更,以即时获取最新的配置内容。
描述
使用以下接口监听 ACM 配置的变更。
public static void addListener(String dataId, String group, ConfigChangeListenerAdapter listener)
请求参数
参数 | 参数类型 | 描述 |
---|---|---|
dataId | String | 配置 ID,采用类似 package.class (如 com.taobao.tc.refund.log.level )的命名规则保证全局唯一性。建议根据配置的业务含义来定义 class 部分。全部字符均为小写。只允许英文字符和 4 种特殊字符(“.”、“:”、“-”、“_”),不超过 256 字节。 |
group | String | 配置分组,建议填写产品名:模块名 (如 ACM:Test )来保证唯一性。只允许英文字符和 4 种特殊字符(“.”、“:”、“-”、“_”),不超过 128 字节。 |
listener | ConfigChangeListener | 监听器,配置变更进入监听器的回调函数。 |
返回值
参数类型 | 描述 |
---|---|
String | 配置值,初始化或者配置变更时通过回调函数返回该值。 |
请求示例
说明 请将代码中的
$regionId、
$endpoint、
$namespace、
$accessKey、
$secretKey 分别替换为 ACM 控制台上
命名空间详情对话框内的
地域 ID、
End Point、
命名空间 ID、
AccessKey、
SecretKey。
// 初始化配置服务
ConfigService.init("$endpoint", "$namespace", "$accessKey", "$secretKey");
// 初始化时给配置添加监听,配置变更会回调通知。
ConfigService.addListener("$dataId", "$group", new ConfigChangeListener() {
public void receiveConfigInfo(String configInfo) {
// 当配置更新后,通过该回调函数将最新值返回给用户
System.out.println(configInfo);
}
});
// 以下代码用于测试,作用是让主线程不退出。订阅配置是守护线程,如果主线程退出守护线程就会退出。
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}