前言:开发一个单体SpringBoot项目,由于配置较多,想着用nacos作为外部配置中心,后面随时更新配置不用重启项目,所以就把nacos整合进来,Nacos官方文档写的也很清楚,但是我按照官方文档来却遇到了问题记录下。官方文档
一.添加依赖库
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
二.新增nacos配置
在application.yml或者application.properties中增加nacos配置地址
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: fa8ca7c5-4d8d-4298-9d17-6ec6dfc03572 #Data Id
三、启动类添加关键注解
@NacosPropertySource(dataId = "你的Data Id", autoRefreshed = true)
四、打印所有配置文件
因为我按照官方文档一直起不起来或者启动起来读取不到配置,所以我在controller类中加上打印所有配置代码,方便观察以及debug找问题
@NacosInjected
private ConfigService configService;
@PostConstruct
public void init(){
try {
System.out.println("获取远程nacos配置内容:"+configService.getConfig("你的Data Id","DEFAULT_GROUP",5000));
} catch (NacosException e) {
e.printStackTrace();
}
}
通过在打印语句这里打断点,一步步深入,发现配置没问题,底层调用nacos时失败了,所以我加了一个nacos-client依赖,然后就解决了,启动没问题,也可以获取到所有配置
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.4.1</version>
</dependency>
依赖配置全览:
五、测试动态更新配置
在controller中写一个接口,从nacos获取值,然后修改nacos中配置的这个值,不重启项目,刷新自定义的这个get测试接口数据也更新了