Nacos Config 配置中心
约 613 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › Spring Cloud › 配置中心
Nacos 除了做注册中心,还能做配置中心——统一管理所有微服务的配置,支持动态刷新。
添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>bootstrap.yml
Spring Cloud 2022.0+ 默认不再使用 bootstrap,需要手动启用:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency># bootstrap.yml
spring:
application:
name: user-service
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yaml # 配置格式
namespace: public
group: DEFAULT_GROUP
refresh-enabled: true # 开启动态刷新Nacos 配置 Data ID 格式
{prefix}-{profile}.{file-extension}
# 示例:user-service-dev.yaml
# 示例:user-service-prod.yaml# Nacos 控制台 → 配置管理 → 添加配置
# Data ID: user-service-dev.yaml
# 配置内容:
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/shop_user
username: root
password: root
app:
jwt:
secret: my-secret-key
expire: 86400application.yml
spring:
profiles:
active: dev启动时加载顺序:
bootstrap.yml→ 连接 Nacos → 拉取user-service-dev.yaml→ 注入配置application.yml→ 本地配置(优先级低于 Nacos)
@RefreshScope 动态刷新
@Service
@RefreshScope // 配置变化时自动刷新 Bean
public class JwtConfig {
@Value("${app.jwt.secret}")
private String secret;
@Value("${app.jwt.expire}")
private Integer expire;
public String getSecret() { return secret; }
public Integer getExpire() { return expire; }
}# 在 Nacos 控制台修改配置 → 点击"发布"
# user-service 日志自动打印
# [com.alibaba.nacos.client.Worker] TRACE: Refresh config success...命名空间与分组
spring:
cloud:
nacos:
config:
namespace: dev # 命名空间(多环境隔离)
group: SHOP_GROUP # 分组(业务隔离)命名空间:dev / test / prod(环境隔离)
分组:SHOP_GROUP / PAY_GROUP(业务域隔离)
Data ID:user-service-dev.yaml(具体配置)配置共享
spring:
cloud:
nacos:
config:
shared-configs: # 共享配置
- data-id: common.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: datasource.yaml
group: DEFAULT_GROUP
refresh: false
extension-configs: # 扩展配置
- data-id: redis.yaml
group: DEFAULT_GROUP
refresh: true# Nacos → common.yaml(所有服务共享)
app:
name: shop-cloud
version: 1.0.0
logging:
level:
root: info配置加载优先级
从高到低:
- 启动参数:
--spring.profiles.active=prod - Nacos 配置文件(同名)
- Nacos 扩展配置(extension-configs)
- Nacos 共享配置(shared-configs)
- 本地
application.yml
小结
- Nacos Config = 注册中心 + 配置中心,一体化管理。
- Data ID 格式:
{prefix}-{profile}.yaml,Nacos 自动匹配当前 profile。 @RefreshScope:配置更新后自动注入新值,无需重启。- 命名空间隔离环境(dev / test / prod),分组隔离业务域。
shared-configs让多个服务共享通用配置。- 配置加载优先级:启动参数 > Nacos > 本地。
上一节:Gateway 过滤器与动态路由 下一节:配置动态刷新与共享
