通过 Nacos 提供的 Java 客户端 SDK 来获取配置信息,但是结果是null
<!--添加maven依赖 -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.1.2</version>
</dependency>
代码如下
public static void main(String[] args) throws NacosException {
//nacos 地址
String serverAddr = "127.0.0.1:8848";
//Data Id
String dataId = "nacos‐simple‐demo.yaml";
//Group
String group = "DEFAULT_GROUP";
Properties properties = new Properties();
properties.put("serverAddr",serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
//获取配置,String dataId, String group, long timeoutMs
String content = configService.getConfig(dataId, group, 5000);
System.out.println(content);
}
打印出来的content始终为null,去查看源码中的调用方法,发现源码中多了一个命名空间的配置。将以上代码添加以下代码即可:
//添加nacos 命名空间,testNacos:为你需要查询配置所在的命名空间
properties.setProperty("namespace", "testNacos");
完整版代码如下:
public static void main(String[] args) throws NacosException {
Properties properties = new Properties();
//nacos 地址 PropertyKeyConst.SERVER_ADDR:"serverAddr"
properties.setProperty(PropertyKeyConst.SERVER_ADDR,"127.0.0.1:8848");
//nacos 命名空间
properties.setProperty("namespace", "testNacos");
//Data Id
String dataId = "nacos-demo1.yml";
//Group
String group = "DEFAULT_GROUP";
ConfigService configService = NacosFactory.createConfigService(properties);
//获取配置,String dataId, String group, long timeoutMs
String content = configService.getConfig(dataId, group, 5000);
System.out.println("content: "+content);
}