一.引入Nacos作为配置中心的相关依赖
在webshop-common项目的pom.xml文件下,导入Nacos作为配置中心的相关依赖,如下:
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
二.添加bootstrap.properties文件,配置Nacos Config元数据
在项目的/src/main/resources目录下添加bootstrap.properties文件,这个文件会优先被加载,在这个文件里配置上Nacos Config的元数据,如下:
#服务名
spring.application.name=webshop-order
#nacos服务地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
三.开启动态刷新功能
如果没有使用配置中心的话,一旦服务配置有更改就会需要重新启动,那当服务都去配置中心拿相应配置信息时,就需要开启动态刷新这个功能来感知配置中心内容的变化,从而作出改变。
使用@RefreshScope开启动态刷新功能,这里以webshop-order项目的OrderController类为例,如下:
四.在Nacos Server上添加配置
登录Nacos Server,点击配置列表,选择添加配置:
输入配置信息,Data ID默认一般都是应用名.properties,如下:
点击发布。
五.动态展示配置中心的值
找一个controller类,写一个接口,通过@Value取得配置文件的值,展示给前端,如下:
启动webshop-order服务,访问http://localhost:9000/order/order/info,结果如下:
说明是可以成功取到配置中心值的,这里要注意,配置中心上的配置文件一定要先创建好,然后再启动服务,否则本地项目没有配置相应的属性,@Value又要去取,那启动就会报错。接着修改Nacos中的配置文件中的值:
改成如下属性值:
不重启服务,直接刷新页面,结果如下:
可以发现属性值已经发生变化了。
引入Nacos作为配置中心,统一维护各服务的配置信息,修改后动态刷新,避免了反复重启服务对业务造成影响,同时也更易于维护。