【SpringBoot系列】springboot项目使用nacos作为配置中心

本文介绍了如何在SpringBoot项目中使用Nacos作为配置中心。详细讲述了Nacos服务端配置,包括登录控制中心、创建命名空间和配置文件,以及配置Key-Value。接着,文章说明了SpringBoot项目的配置步骤,包括pom.xml的修改和application.yml的配置。在实践过程中遇到了包引用错误、配置问题以及NacosConfig预加载未开启等问题,并提供了解决方案。最后进行了总结,强调了学习过程中的难点和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        

目录

1、nacos 服务端配置

1.1 登录控制中心

1.2 创建命名空间

1.3 创建配置文件

1.4 配置key value

2、配置springboot项目

2.1 配置pom

2.2 配置applicanttion.yml

2.3 使用配置

3、遇到的问题

3.1 使用的包不对

3.2 配置不对

3.3 [Nacos Config Boot] : The preload configuration is not enabled

3.4 @NacosValue 的使用

4、总结


        最近在开发一个Netty的项目,使用springboot做基础,有一个黑名单的功能想要线上配置,因为其他团队都在使用nacos,所以想将配置放在nacos上。

第一次使用nacos,几啥也不懂,直接从仓库拉了其他的项目,跟着做了配置,无奈一直无法获取线上的配置,记录一下问题和解决办法

1、nacos 服务端配置

nacos 是啥就不说了,如果你不知道也不会搜到这篇文章。

nacos server的安装就不说了,最主要我也没有安装过,都是用的内部别人安装好的测试环境,安装环境这个线上教程很多,跟着配置一下吧。我想一定难不倒聪明的你。

官方的教程:Nacos 快速开始

1.1 登录控制中心

nacos 测试环境地址:

Spring Boot项目使用Nacos配置中心,并实现动态刷新配置,可以通过以下步骤来完成: ### 1. 引入依赖 首先,在`pom.xml`文件中引入Nacos的配置管理依赖。 ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2021.1</version> <!-- 版本根据实际需求选择 --> </dependency> ``` ### 2. 配置`bootstrap.yml` `bootstrap.yml`文件用于配置Nacos的相关信息。确保在项目启动时能够正确连接到Nacos服务器。 ```yaml spring: application: name: demo-application # 应用名称 cloud: nacos: config: server-addr: 127.0.0.1:8848 # Nacos服务器地址 file-extension: yaml # 配置文件格式(可以是properties或yaml) namespace: your-namespace-id # 如果有命名空间,请填写 group: DEFAULT_GROUP # 配置分组,默认为DEFAULT_GROUP ``` ### 3. 创建Nacos配置文件 在Nacos控制台中创建一个配置文件,配置内容如下: ```yaml app.name: NacosConfigDemo app.desc: This is a demo for Nacos Config ``` 配置的Data ID应与`spring.application.name`一致,即`demo-application.yaml`。 ### 4. 动态刷新配置 为了支持动态刷新配置,需要在需要动态刷新的类上添加`@RefreshScope`注解。 #### 示例代码 ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RefreshScope // 支持动态刷新 public class ConfigController { @Value("${app.name}") private String appName; @Value("${app.desc}") private String appDesc; @GetMapping("/config") public String getConfig() { return "App Name: " + appName + ", App Description: " + appDesc; } } ``` ### 5. 测试动态刷新 1. 启动Spring Boot应用。 2. 访问`http://localhost:8080/config`,查看初始配置。 3. 修改Nacos中的配置项(如将`app.desc`改为其他值)。 4. 再次访问`http://localhost:8080/config`,发现配置已经自动更新。 --- ### 解释 - **`@RefreshScope`**:该注解使得Spring容器中的Bean支持动态刷新。当Nacos中的配置发生变化时,Spring会重新加载这些Bean。 - **Nacos配置监听**:Nacos客户端会监听配置的变化,当配置发生变更时,Spring Cloud Alibaba会自动刷新相关的Bean。 - **动态刷新机制**:通过Spring Actuator的`/actuator/refresh`端点可以手动触发配置刷新,但使用`@RefreshScope`后,Spring会自动处理大部分场景下的刷新。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香菜+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值