配置管理
2026年3月12日大约 2 分钟
配置管理
需要配置管理的原因:
- 微服务的重复配置过多,难以维护
- 业务、路由配置变动,需要频繁修改配置文件,重启服务
配置管理的解决方案:
- 使用Nacos配置中心,集中管理微服务的配置
配置共享
添加配置到Nacos配置中心
在Nacos控制面板中创建配置,选择配置列表,点击+按钮,输入以下信息:
- Data ID:xxx.yaml
- Group:DEFAULT_GROUP
- 配置内容
拉取共享配置
SpringCloud与SpringBoot读取配置文件的流程不同,具体流程见下图
注意
需要先配置好相关依赖,才能实现下图读取流程

图:SpringCloud配置文件读取流程
- 引入相关依赖
<!-- Nacos配置中心依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency><!-- SpringCloud配置文件读取依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> - 新建
bootstrap.yml文件,配置Nacos连接信息
spring:
application:
name: service-name # 服务名称
cloud:
nacos:
server-addr: localhost:8848 # Nacos服务器地址
config:
file-extension: yaml # 配置文件格式
shared-configs: # 共享配置列表
- data-id: common-config.yaml # 共享配置的dataId
- data-id: business-config.yaml # 共享配置的dataId配置热更新
配置热更新的原理
- Nacos配置中心会监听配置文件的变化,当配置文件发生变化时,会通知相关服务进行更新
- SpringCloud会自动刷新配置文件的内容,并将新的配置注入到相关的Bean中
Nacos中准备配置文件
- 命名方式:
微服务名称-项目profile(可选).文件后缀名 - 例如:
service-name-dev.yaml - 在配置内容中添加需要热更新的配置项
SpringCloud中使用热更新
- 方式1:使用
@ConfigurationProperties注解 推荐
@Component
@Data
@ConfigurationProperties(prefix = "example")
public class exampleProperties {
private String exampleProperty;
}- 方式2:使用
@RefreshScope搭配@Value注解
@RefreshScope
@Component
@Data
public class exampleProperties {
@Value("${example.property}")
private String exampleProperty;
}