用於監聽 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();
}
}