• 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配置文件

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

    4.3 TestController类

    1. package com.it.controller;
    2. import com.it.domian.Student;
    3. import org.springframework.beans.factory.annotation.Autowired;
    4. import org.springframework.web.bind.annotation.GetMapping;
    5. import org.springframework.web.bind.annotation.RestController;
    6. @RestController
    7. public class TestController {
    8. @Autowired
    9. private Student student;
    10. @GetMapping("info")
    11. public String getInfo(){
    12. return student.getName()+":"+student.getAge()+":"+student.getAddress()+":"+student.getHobby();
    13. }
    14. }

    4.4 Student类

    1. package com.it.domian;
    2. import lombok.AllArgsConstructor;
    3. import lombok.Data;
    4. import lombok.NoArgsConstructor;
    5. import org.springframework.beans.factory.annotation.Value;
    6. import org.springframework.cloud.context.config.annotation.RefreshScope;
    7. import org.springframework.stereotype.Component;
    8. @Data
    9. @AllArgsConstructor
    10. @NoArgsConstructor
    11. @Component
    12. @RefreshScope
    13. public class Student {
    14. @Value("${student.name}")
    15. private String name;
    16. @Value("${student.age}")
    17. private Integer age;
    18. @Value("${student.address}")
    19. private String address;
    20. @Value("${student.hobby}")
    21. private String hobby;
    22. }

    4.5 主函数启动类

    5.测试项目

     

     

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

     

     

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

  • 相关阅读:
    训练神经网络gpu占用率低,gpu为什么适合神经网络
    java调用存储过程返回数字
    python从入门到精通合集(二)面向对象,文件IO、线程、进程
    企业进行高质量数据管理,实施数据治理的关键是什么?
    层级锁笔记
    提高Python并发性能 - asyncio/aiohttp介绍
    测试人生 | 从功能到外企测开,工作1年半拿下年薪30万的测开 offer,这个95后小姐姐未来可期~
    java计算机毕业设计ssm基金分析系统的设计与实现
    第1章 初识Spring Boot,开发社区首页(下)
    软考高项-项目评估与决策&招投标
  • 原文地址:https://blog.csdn.net/weixin_59334478/article/details/127953755