0


33.nacos客户端读取多配置文件实例(springcloud)

1.配置文件的读取方式【重点】

nacos 配置中心通过 namespace、dataId 和 group 来唯一确定一条配置。

 Namespace:即命名空间。默认的命名空间为 public,我们可以在 Nacos 控制台中新建命名空间;

 dataId:即配置文件名称  

 Group : 即 配 置 分 组 , 默 认 为 DEFAULT_GROUP , 可 以 通 过spring.cloud.nacos.config.group 配置。 

其中:dataId 是最关键的配置字段:格式如下:

**${prefix} ****- ****${spring.profiles.active} ****. ${file-extension} **

说明:

    prefix 默 认 为 spring.application.name 的 值 , 也 可 以 通 过 配 置 项spring.cloud.nacos.config.prefix 来配置; 

    spring.profiles.active 即 为 当 前 环 境 对 应 的 profile 。 注 意 , 当 spring.profiles.active 为空时,对应的连接符-也将不存在,dataId 的拼接格式变 成${prefix}.${file-extension};

    file-extension 为 配 置 内 容 的 数 据 格 式 , 可 以 通 过 配 置 项spring.cloud.nacos.config.file-extension 来配置。 

这就是上面我们为什么能获得到配置的原因了。

注意:在写 dataId 的时候一定要添加文件类型后缀

Eg: nacos-config-dev**.yml**

2.配置文件划分

Nacos 配置中心的 namespace、dataId 和 group 可以方便灵活地划分配置。比如,我们现在有一个项目需要开发,项目名称为 bjpowernode,项目开发人员分为两个组:GROUP_A 和GROUP_B,项目分为三个环境:开发环境 dev、测试环境 test 和生产环境 prod。

powernode->GRUOR_A->dev

1.新建命名空间如图所示

2.在shop命名空间里面新建配置文件

3.再次在shop命名空间里新建配置文件

4.新建项目nacos-config-test

选择依赖

4.1 pom.xml文件

4.2 bootstrap.yml配置文件

server:
  port: 8082
spring:
  application:
    name: nacos-config-test
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        username: nacos
        password: nacos
        namespace: fde52e30-7d67-49f3-b808-5eef3763d40b  #目前读取多配置文件的方式只支持在同一个命名空间下
        extension-configs:   #可以读多个配置文件  需要在同一个命名空间下面可以是不同的组
                - dataId: user-center-dev.yml
                  group: A_GROUP
                  refresh: true
                - dataId: member-center-dev.yml
                  group: B_GROUP
                  refresh: false #不去动态刷新配置文件

4.3 TestController类

package com.it.controller;

import com.it.domian.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @Autowired
    private Student student;

    @GetMapping("info")
    public String getInfo(){
        return student.getName()+":"+student.getAge()+":"+student.getAddress()+":"+student.getHobby();
    }

}

4.4 Student类

package com.it.domian;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@RefreshScope
public class Student {

    @Value("${student.name}")
    private String name;

    @Value("${student.age}")
    private Integer age;

    @Value("${student.address}")
    private String address;

    @Value("${student.hobby}")
    private String hobby;

}

4.5 主函数启动类

5.测试项目

分别修改配置文件的内容 ,发现A_GROUP可以正常更改,B_GROUP不能正常修改。

这是因为B_GROUP没有设置配置文件自动刷新


本文转载自: https://blog.csdn.net/weixin_59334478/article/details/127953755
版权归原作者 做一道光 所有, 如有侵权,请联系我们删除。

“33.nacos客户端读取多配置文件实例(springcloud)”的评论:

还没有评论