前面介绍了 Nacos 的安装、部署与启动👉🔥Nacos 的安装与部署 - 掘金 (juejin.cn) 本篇就来介绍如何 使用 Nacos 来动态的修改配置信息。
一、创建配置信息
假设你已经知道如何部署并启动 Nacos
,接下来直接创建配置。
- Data ID: 配置的唯一标识,用于查找配置文件。
- Group: 配置分组,设置小组信息,如:DEV_GROUP 开发小组、TEST_GROUP 测试小组......
发布后还可以回滚历史版本:
二、在 SpringBoot 中使用配置中心
在SpringBoot
中可以使用 Nacos
,这就可以动态地修改配置。
- 创建
SpringBoot
项目(版本:jdk17、SpringBoot3.x)
选择如下依赖:
或者复制如下依赖到pom.xml:
java
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2022.0.0.0</version>
</dependency>
- 配置文件:连接
Nacos
properties
# Nacos认证信息
spring.cloud.nacos.config.username=nacos
spring.cloud.nacos.config.password=nacos
spring.cloud.nacos.config.contextPath=/nacos
# 设置配置中心服务端地址
spring.cloud.nacos.config.server-addr=localhost:8848
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可
# spring.cloud.nacos.config.namespace=
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.config.import=nacos:nacos-config-demo1
注意这里的对应关系:
- 读取配置中心的配置
先创建一个类来验证是否能读取配置中心的数据,操作跟读取项目中的配置文件是一样的,随后启动项目。
java
@RestController
public class TestController {
@Value("${myconfig}")
private String myconfig;
@RequestMapping("/config")
public String getMyconfig(){
return myconfig;
}
}
读取成功,再来验证是否能动态修改配置,先把配置中心修改为 juejin2
。
再直接访问/config
没有发生改变,原因是我们需要在类上加@RefreshScope
注解。
java
@RestController
@RefreshScope
public class TestController {
@Value("${myconfig}")
private String myconfig;
@RequestMapping("/config")
public String getMyconfig(){
return myconfig;
}
}
再来验证:
通过上面的验证可以看到, SpringBoot
中的配置可以随着 Nacos
中心配置的改变而改变,不用再重新部署项目了。