Spring Cloud Alibaba + Nacos Config实现配置动态更新
程序员文章站
2022-07-15 10:16:35
...
Spring Cloud Alibaba + Nacos Config实现配置动态更新
本文主要介绍使用Spring Cloud Alibaba + Nacos Config实现动态配置自动变更。
相关依赖
<!-- 暴露web接口 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- nacos dynamic config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
主要配置
下边的配置要写在bootstrap.yml
或者bootstrap.properties
中:
spring:
application:
name: cloud-alibaba-nacos-config
cloud:
nacos:
config:
# 配置文件类型为yml/yaml, 也可以设置为properties
file-extension: yml
# nacos服务地址
server-addr: localhost:8848
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
- prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
- spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {file-extension}
- file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
即最终默认的格式:
${spring.application.name}-${spring.profile.active}.${file-extension}
编写接口
对外暴露一个测试接口,使用@RefreshScope
注解实现动态配置自动更新。
@RestController
@RefreshScope // 开启动态刷新
public class ConfigController {
@Value("${user.name}")
private String userName;
@Value("${user.age}")
private int age;
@GetMapping
public String hello(){
return "Hello, " + userName + ", age is " + age;
}
}
Nacos配置
启动Nacos,访问http://localhost:8848/nacos登录,新建配置:
Data Id为:
${spring.application.name}-${spring.profile.active}.${file-extension}
,
则本例中为:cloud-alibaba-nacos-config.yml
,新建如下图yml配置,并发布。
进行测试
启动项目
@SpringBootApplication
public class AliNacosConfigApplication {
public static void main(String[] args) {
SpringApplication.run(AliNacosConfigApplication.class, args);
}
}
访问测试
修改Naocs中的配置
再次测试,发现数据已经自动刷新了
推荐阅读
-
10.Spring Cloud Alibaba Nacos配置中心
-
利用Spring Cloud Config结合Bus实现分布式配置中心的步骤
-
Spring Cloud Config实现分布式配置中心
-
利用Spring Cloud Config结合Bus实现分布式配置中心的步骤
-
Spring Cloud动态配置实现原理与源码分析
-
spring cloud config 配置中心快速实现过程解析
-
Spring Cloud Config实现分布式配置中心
-
Spring Cloud动态配置实现原理与源码分析
-
Spring Cloud Gateway的动态路由怎样做?集成Nacos实现很简单
-
基于Nacos实现Spring Cloud Gateway实现动态路由的方法