Java获取nacos的yml配置的值静态方法获取来一个示例
假设我们有一个名为"example.yaml"的配置文件,其中有一个名为"myValue"的属性。以下是如何使用Java静态方法读取该属性的示例代码:
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.nio.NacosConfigListener;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.client.config.NacosConfigService;
import org.yaml.snakeyaml.Yaml;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class NacosYamlConfigDemo {
private static final String SERVER_ADDR = "localhost:8848";
private static final String NAMESPACE = "public";
private static final String GROUP_ID = "DEFAULT_GROUP";
private static final String DATA_ID = "example.yaml";
private static String myValue;
public static void main(String[] args) throws NacosException, InterruptedException {
// 初始化NacosConfigService
Properties properties = new Properties();
properties.put("serverAddr", SERVER_ADDR);
properties.put("namespace", NAMESPACE);
ConfigService configService = new NacosConfigService(properties);
// 添加配置监听器
configService.addListener(DATA_ID, GROUP_ID, new NacosConfigListener() {
@Override
public void receiveConfigInfo(String configInfo) {
// 解析YAML配置
Yaml yaml = new Yaml();
Map<String, Object> map = yaml.load(configInfo);
myValue = (String) map.get("myValue");
}
});
// 获取配置
String configInfo = configService.getConfig(DATA_ID, GROUP_ID, 5000);
if (configInfo != null) {
// 解析YAML配置
Yaml yaml = new Yaml();
Map<String, Object> map = yaml.load(configInfo);
myValue = (String) map.get("myValue");
}
// 等待配置更新
Thread.sleep(10000);
// 输出myValue的值
System.out.println("myValue = " + myValue);
}
}
在上面的代码中,我们首先初始化了一个NacosConfigService对象,并设置了服务器地址和命名空间。然后,我们添加了一个配置监听器,以便在配置发生更改时更新myValue的值。接下来,我们获取了一次配置,并解析了YAML文件以获取myValue的值。最后,我们等待10秒钟,以便在此期间可以更改配置,并输出myValue的值
原文地址: https://www.cveoy.top/t/topic/fdEx 著作权归作者所有。请勿转载和采集!