荐 spring cloud alibaba nacos 实现配置管理
nacos非常的强大,不仅可以作为一个注册中心使用,同时也能够取代config作为一个配置中心,并且提供了比sprring cloud config更加强大的功能和交互方式
接下来我们会继续使用上篇文章创建的nacos的服务,作为演示案例,参考https://blog.csdn.net/weixin_42214548/article/details/107280560
步骤一:
添加依赖,并且将application.properties重命名为bootstrap.properties,bootstrap.properties的优先级将高于application.properties
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
步骤二:
bootstrap.properties添加配置
server.port=9002
spring.application.name=nacos-provider
# nacos配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# nacos配置中心文件后缀
spring.cloud.nacos.config.file-extension=yml
# nacos注册中心地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.profiles.active=dev
步骤三:
在nacos中配置我们需要的配置信息,我们找到nacos的首页,找到配置管理菜单,找到配置列表,然后找到右侧的一个+号
我们可以看到列表有Data Id , Group 等字段,它们和NameSpace是nacos的领域模型,下面我解释下三者之间的含义
Data Id: data id就代表我们项目所匹配的环境配置文件名,规则如下
${prefix}-${spring.profile.active}.${file-extension}
-
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。 -
spring.profile.active
即为当前环境对应的 profile - 注意:当
spring.profile.active
为空时,对应的连接符-
也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}
-
file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。
所以我们的配置文件配置如下:
spring.application.name-spring.profile.active.spring.cloud.nacos.config.file-extension
nacos-provider-dev.yml
Group : 代表配置文件的组,默认为DEFAULT_GROUP,可用于区分各环境的配置
NameSpace: 命名空间是默认存在的,默认为public,不能被删除,新增的命名空间则是可以被删除的,同样是可以用于区分各种复杂的环境配置
步骤四:
我们在配置列表中添加一个配置,然后再提供者服务中进行读取
@RestController
@RequestMapping("provider")
public class TestController {
@Value("${server.port}")
private String port;
@Value("${config.info}")
private String info;
@GetMapping("test")
public String test(){
return port+":"+info;
}
}
调用接口http://localhost:9002/provider/test , 可以看到配置中心的配置被成功读取
步骤五:
通过 Spring Cloud 原生注解 @RefreshScope
实现配置自动更新
@RestController
@RequestMapping("provider")
@RefreshScope
在配置中心修改之前的配置config.info为test2
重新访问http://localhost:9002/provider/test
配置生效,真的大大简化了之前config的操作
本文地址:https://blog.csdn.net/weixin_42214548/article/details/107281652
下一篇: C#实现简单的登录界面
推荐阅读
-
基于Nacos实现Spring Cloud Gateway实现动态路由的方法
-
Spring Cloud Alibaba | Nacos集群部署
-
Spring Cloud Alibaba | Nacos服务中心初探
-
Spring Cloud Alibaba | Nacos配置管理
-
Spring Cloud Alibaba Nacos
-
荐 spring cloud alibaba nacos 实现配置管理
-
Spring Cloud Alibaba 之 Nacos教程详解
-
【SpringCloudAlibaba专题】spring cloud gateway结合nacos实现sentinel动态限流值url参数模式
-
Spring Cloud Alibaba Sentinel用nacos配置规则
-
Spring-Cloud-Alibaba-Nacos-Discovery 安装使用