欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 spring cloud alibaba nacos 实现配置管理

程序员文章站 2022-04-29 10:40:00
nacos非常的强大,不仅可以作为一个注册中心使用,同时也能够取代config作为一个配置中心,并且提供了比sprring cloud config更加强大的功能和交互方式接下来我们会继续使用上篇文章创建的nacos的服务,作为演示案例,参考https://blog.csdn.net/weixin_42214548/article/details/107280560步骤一:添加依赖,并且将application.properties重命名为bootstrap.properties,b.....

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的首页,找到配置管理菜单,找到配置列表,然后找到右侧的一个+号

荐
                                                        spring cloud alibaba 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,不能被删除,新增的命名空间则是可以被删除的,同样是可以用于区分各种复杂的环境配置

荐
                                                        spring cloud alibaba nacos 实现配置管理

 

 

步骤四: 

我们在配置列表中添加一个配置,然后再提供者服务中进行读取

荐
                                                        spring cloud alibaba nacos 实现配置管理

@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 alibaba nacos 实现配置管理

 

 

步骤五:

通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新

@RestController
@RequestMapping("provider")
@RefreshScope

在配置中心修改之前的配置config.info为test2

荐
                                                        spring cloud alibaba nacos 实现配置管理

 

重新访问http://localhost:9002/provider/test

荐
                                                        spring cloud alibaba nacos 实现配置管理

 

配置生效,真的大大简化了之前config的操作

本文地址:https://blog.csdn.net/weixin_42214548/article/details/107281652