Map<String, String> resultMap = new HashMap<>();
/**
* 获取密钥
*
* @param perfix key 前缀 config/test/spring.datasource.url
* @return {@link List}<{@link String}>
*/
public List<String> getKeys(String perfix) {
String url = StrUtil.format("{}/v1/kv/{}?keys", host, perfix);
String result = HttpUtil.get(url);
return JSONUtil.toList(result, String.class);
}
/**
* 获取值
*
* @param key 配置全路径 config/test/
* @return {@link String}
*/
public String getValue(String key) {
String url = StrUtil.format("{}/v1/kv/{}", host, key);
String result = HttpUtil.get(url);
JSONArray jsonArray = new JSONArray(result);
JSONObject jsonObject = jsonArray.getJSONObject(0);
String str = new String(Base64.getDecoder().decode(jsonObject.getStr("Value")));
return str;
}
public void build(String perfix) {
List<String> keys = getKeys(perfix);
for (String key : keys) {
if (StrUtil.endWith(key, "/")) {
build(key);
} else {
resultMap.put(key, getValue(key));
}
}
}
Consul 配置读取示例
最新推荐文章于 2025-04-25 16:22:30 发布