目录
四、写测试Controller,@RefreshScope 动态刷新
接上文:
一、添加依赖
<!-- Nacos Config 配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
二、修改配置文件application.yml
server:
port: 8082
spring:
application:
name: nacos-consumer
cloud:
nacos:
server-addr: 127.0.0.1:8848
username: nacos
password: 111111
discovery: #服务发现
#分组名
group: test
config: #服务配置
file-extension: yaml # Nacos 上配置文件格式
#namespace: public # 命名空间 ID(默认为 public)
group: DEFAULT_GROUP # 配置组
refresh-enabled: true # 开启自动刷新
sentinel:
transport:
dashboard: 127.0.0.1:8079 # sentinel控制台地址
port: 8719 # 客户端和控制台通信端口,默认即可
config:
import:
#- nacos:nacos-consumer.yaml #这个配置是读取不到config就报错
- optional:nacos:nacos-consumer.yaml #这个配置是读取不到config也能启动
feign:
sentinel:
enabled: true # ✅ 关键开关,开启Feign对Sentinel支持,不打开降级不生效
- Nacos 3.x 如果开启了鉴权,
username/password建议放在spring.cloud.nacos下,而不是只放在discovery下 - 引入spring.config.import(import是列表,所以另起一行用 - 开头)在
spring.config.import模式下,${spring.application.name}.${file-extension}这条“自动生成 DataId 的规则”已经不再起作用了。 如果要读取多个就在import下多写几个yaml文件即可(这个是Spring Cloud Alibaba 2025.x / Nacos 3.x新规则) - 主要配置spring.cloud.nacos.config内容
三、nacos控制台添加配置
打开 Nacos → 配置管理 → 配置列表 → 新建配置

- Data ID:nacos-consumer
.yaml - Group:
DEFAULT_GROUP - 配置格式:YAML
- 配置内容
demo:
msg: 这是从Nacos配置中心读取的消息
switch: true
四、写测试Controller,@RefreshScope 动态刷新
package com.demo.consumer;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/config")
@RefreshScope // ✅ 核心注解:支持配置变更自动刷新
public class ConfigController {
@Value("${demo.msg:默认值}")
private String msg;
@Value("${demo.switch:false}")
private Boolean switchFlag;
@GetMapping("/get")
public String getConfig(){
return "msg:" + msg + ",开关:" + switchFlag;
}
}
五、测试流程
- 启动 Nacos、consumerApp
- 访问:
http://127.0.0.1:8082/config/get正常读到 Nacos 里的demo.msg - 回到 Nacos 控制台,编辑配置,修改 demo.msg 的值,发布
- 再次访问接口 → 新配置立刻生效,不用重启服务 ✅

698



被折叠的 条评论
为什么被折叠?



