Spingboot2.x集成Nacos配置中心DEMO

  • 1 页面配置信息添加
  • 1.1 新建命名空间
  • 1.2 添加配置信息
  • 2 依赖
  • 3 配置信息设置
  • 3 测试类
  • 4 更改配置前访问
  • 4 更改配置
  • 4 更改配置后访问



1 页面配置信息添加

1.1 新建命名空间

进入nacos控制台页面–>命名空间–>新建命名空间–>填写命名空间ID、名称、描述信息后,点击确定进行保存

springboot 集成istio_配置中心

1.2 添加配置信息

进入nacos控制台页面–>配置列表–>选择我们需要的命名空间–>点击“+”按钮进行添加–>填写配置信息–>发布

springboot 集成istio_命名空间_02


配置信息填写示例:

springboot 集成istio_springboot 集成istio_03

Data ID
配置集ID, 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。
在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 springboot 集成istio_springboot 集成istio_04{file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

Group
配置分组,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或Trade)对配置集进行分组,从而区分 Data ID 相同的配置集。当在Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和MQ_topic配置。

配置格式及配置内容
配置格式:配置内容的文件格式
配置内容:需要动态配置的配置信息

2 依赖


<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

3 配置信息设置

在resource目录下添加bootstrap.yml配置文件,并添加nacos相关配置信息

spring:
  application:
    # 用于组合Data ID,可不设置
    name: NacosConfigManage
  cloud:
    nacos:
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # Data ID 前缀
        prefix: nacos-config-test
        # 配置文件类型
        file-extension: yaml
        # 配置分组
        group: LOCAL_GROUP
        # 命名空间
        namespace: 4fecf2dc-ef91-4370-ad2f-d77f013ce346

3 测试类

package com.test.springbootplus.controller;

import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * <pre>
 * nacos配置 API接口
 * </pre>
 *
 * @author yjj
 * @since 2021-12-03
 */
@RestController
// @RefreshScope 实现配置自动更新
@RefreshScope
@Api(tags="nacos配置 API")
public class NacosConfigController {

    @Value("${service.enable:true}")
    private String status;

    @Value("${service.message:您已经开启了配置}")
    private String message;

    @GetMapping("/status")
    public String getStatus() {
        return status;
    }

    @GetMapping("/message")
    public String getMessage() {
        return message;
    }
}

4 更改配置前访问

调用 http://127.0.0.1:8089/message

springboot 集成istio_SpringBoot_05


调用 http://127.0.0.1:8089/status

springboot 集成istio_SpringBoot_06

4 更改配置

进入nacos控制台页面–>配置列表–>选择我们需要的命名空间–>点击需要修改的配置操作列的编辑按钮–>修改配置内容中的配置信息–>发布

springboot 集成istio_springboot 集成istio_07


springboot 集成istio_命名空间_08

4 更改配置后访问

调用 http://127.0.0.1:8089/message

springboot 集成istio_配置中心_09


调用 http://127.0.0.1:8089/status

springboot 集成istio_SpringBoot_10


可以看到,配置信息已经被更改。