目录
配置中心示意图
配置中心-基本使用
步骤一:启动nacos
步骤二:引入依赖
步骤三:application.properties配置
步骤四:创建data-id(数据集)
配置中心-动态刷新
配置中心-配置监听
思考:Nacos中的数据集和application.properties有相同的配置,那个生效?
配置中心-数据隔离
namespace区分多环境
需求描述
难点
动态切换环境
总结
注册中心
配置中心
配置中心示意图

配置中心-基本使用

步骤一:启动nacos
详细操作可以看我前几篇文章nacos-注册中心、服务注册
步骤二:引入依赖
在services的pom文件引入依赖:
<!– 引入配置中心依赖–>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
步骤三:application.properties配置
以订单为例,首先在service-order的application.properties中加入一行
spring.config.import=nacos:service-order.properties
表示在项目启动时导入service-order.properties,并在service-order.properties里面写入配置。完整代码如下所示:
spring.application.name=service-order
server.port=8000
spring.cloud.nacos.server-addr=127.0.0.1:8848
spring.config.import=nacos:service-order.properties
步骤四:创建data-id(数据集)
代码添加完成后启动项目,打开nacos配置管理的配置列表

新建一个配置,名字与上述配置名相同,配置格式为properties,写入配置内容:

点击发布之后,在配置管理界面就可以看到一条配置。

配置完成后,可以对其做一个测试:在service-order的controller中编写一个方法,获取并返回配置的值:
@Value("${order.timeout}")
String orderTimeout ;
@Value("${order.auto-confirm}")
String orderAutoConfirm;
/**
* 返回获取配置的值
* @return
*/
@GetMapping("/config")
public String config(){
return "order.timeout:" + orderTimeout + " order.auto-confirm:" + orderAutoConfirm;
}
测试效果如下:

接着我们修改naocs里面的配置参数,前端重新访问时,并不能改成我们新改的参数值,此时需要在controller中加入@RefreshScope注解,之后即可自动刷新,自行测试,不再赘述。
这样配置之后就可以实现自动刷新。
配置中心-动态刷新
上一个方法详细描述了步骤一的实现,接下来对步骤二进行描述。
1.在service-order新建一个OrderProperties类,可以实现配置批量绑定。
package com.atguigu.order.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@Data
@ConfigurationProperties(prefix = "order")//配置批量绑定在nacos下,可以无需@RefreshScope就可实现
public class OrderProperties {
String Timeout ;
String AutoConfirm;
}
2.修改controller将获取并返回配置的方法,并将controller的@RefreshScope注解注掉。
// @Value("${order.timeout}")
// String orderTimeout ;
// @Value("${order.auto-confirm}")
// String orderAutoConfirm;
/**
* 返回获取配置的值
* @return
*/
@GetMapping("/config")
public String config(){
return "order.timeout:" + orderProperties.getTimeout() + " order.auto-confirm:" + orderProperties.getAutoConfirm();
}
3.测试发现同样可以实现自动刷新。
配置中心-配置监听
在service-order中编写:
//1.项目启动就监听配置文件变化
//2.发生变化后拿到变化值
//3.发送邮件
@Bean
ApplicationRunner applicationRunner(NacosConfigManager nacosConfigManager) {
return args -> {
ConfigService configService = nacosConfigManager.getConfigService();
configService.addListener("order.properties", "DEFAULT_GROUP", new Listener() {
@Override
public Executor getExecutor() {
return Executors.newFixedThreadPool(4);
}
@Override
public void receiveConfigInfo(String configInfo) {
System.out.println("变化的配置项:"+ configInfo);
System.out.println("发送邮件");
}
});
System.out.println("==============");
};
}
项目启动就可以监听配置了。
思考:Nacos中的数据集和application.properties有相同的配置,那个生效?

先导入优先、外部优先
配置中心-数据隔离
namespace区分多环境
需求描述
1.项目有多套环境:dev,test,prod 2.每个微服务,同一种配置,在每套环境的值都不一样。
- 如:database.properties
- 如:common.properties
3.项目可以通过切换环境,加载本环境的配置
难点
- 区分多套环境
- 区分多种微服务
- 区分多种配置
- 按需加载配置

在nacos的命名空间新建一个开发的命名空间

创建好不同的命名空间之后,可以在配置管理中配置不同命名空间的配置:


动态切换环境
1.将之前resources路径下的application.properties里的内容注掉
2.在resources路径下新建一个文件application.yml,将所有配置写到这个文件里。
server:
port: 8000
spring:
profiles:
active: test
application:
name: server-order
cloud:
nacos:
server-addr: 127.0.0.1:8848
config:
import-check:
enabled: false
namespace: ${spring.profiles.active:dev}
—
spring:
config:
import:
– nacos:common.properties?group=order
– nacos:database.properties?group=order
activate:
on-profile: dev
—
spring:
config:
import:
– nacos:common.properties?group=order
– nacos:database.properties?group=order
– nacos:haha.properties?group=order
activate:
on-profile: test
—
spring:
config:
import:
– nacos:common.properties?group=order
– nacos:database.properties?group=order
– nacos:hehe.properties?group=order
activate:
on-profile: prod
项目启动之后,即可实现动态切换环境。
总结
注册中心
1.引入 spring-cloud-starter-alibaba-nacos-discovery依赖,配置Nacos地址
2.@EnableDiscoveryClient 开启服务发现功能
扩展 1.DiscoveryClient获取服务实例列表
2.LoadBalancerClient 负载均衡选择一个实例(需要引入 spring-cloud-starter-loadbalancer)
3.RestTemplate 可以发起远程调用
配置中心
1. 引入 spring-cloud-starter-alibaba-nacos-config依赖,配置Nacos地址
2. 添加数据集(data-id),使用spring.config.import 导入数据集
3.@Value + @RefreshScope 取值+自动刷新
4.@ConfigurationProperties批量绑定自动刷新
5.NacosConfigManager 监听配置变化
扩展:
配置优先级;namespace区分环境、group区分微服务、data-id区分配置
实现 数据隔离+环境切换
网硕互联帮助中心
![[特殊字符] 纯前端M3U8视频处理工具:在线播放、录制与转换的一站式解决方案-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/02/20260131225721-697e88d1ece9e-220x150.png)

评论前必须登录!
注册