使用 SpringBoot 连接 Nacos 配置中心实现配置的热更新

前面介绍了 Nacos 的安装、部署与启动👉🔥Nacos 的安装与部署 - 掘金 (juejin.cn) 本篇就来介绍如何 使用 Nacos 来动态的修改配置信息。

一、创建配置信息

假设你已经知道如何部署并启动 Nacos,接下来直接创建配置。

  • Data ID: 配置的唯一标识,用于查找配置文件。
  • Group: 配置分组,设置小组信息,如:DEV_GROUP 开发小组、TEST_GROUP 测试小组......

发布后还可以回滚历史版本:

二、在 SpringBoot 中使用配置中心

SpringBoot 中可以使用 Nacos ,这就可以动态地修改配置。

  1. 创建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>
  1. 配置文件:连接 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

注意这里的对应关系:

  1. 读取配置中心的配置

先创建一个类来验证是否能读取配置中心的数据,操作跟读取项目中的配置文件是一样的,随后启动项目。

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 中心配置的改变而改变,不用再重新部署项目了。

相关推荐
JHC0000007 小时前
dy直播间评论保存插件
java·后端·python·spring cloud·信息可视化
华大哥8 小时前
spring cloud微服务实战:consul+Feign/Ribbon服务注册和远程调用
spring cloud·微服务·ribbon·consul·java-consul
黄俊懿18 小时前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——全局事务的提交
java·后端·spring·spring cloud·微服务·架构·架构师
墨痕诉清风1 天前
java漏洞集合工具(Struts2、Fastjson、Weblogic(xml)、Shiro、Log4j、Jboss、SpringCloud)
xml·java·struts·安全·web安全·spring cloud·log4j
⑩-1 天前
SpringCloud-Feign客户端实战
后端·spring·spring cloud
楠枬1 天前
Nacos
java·spring·spring cloud·微服务
一人の梅雨1 天前
京东商品详情接口深度解析:从宙斯签名到商详数据价值重构
java·spring cloud·微服务
Dolphin_Home2 天前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
Mr.朱鹏2 天前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
TSAI2 天前
Docker Swarm 集群部署 Eureka 服务注册中心:高可用微服务架构的基石
spring cloud·docker