zoukankan      html  css  js  c++  java
  • 从Nacos配置中心读取配置信息

    1. 项目中引入依赖

      要从nacos中读取配置,需要引入相关依赖。

    1 <dependency>
    2   <groupId>com.alibaba.cloud</groupId>
    3    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    4 </dependency>

    2. 在nacos中配置文件

    在nacos的配置列表中添加相关文件。

    添加好配置后,对应上图,有几个信息比较关键:

    1. namespace,命名空间id。命名空间可在左侧菜单栏的命名空间中管理。
    2. dataId,相当于文件名。
    3. group,配置分组信息。

    有了这三个参数,以及nacos服务的服务器地址,接下来就可以定位并读取配置文件中的内容。

    3. 读取配置信息.  方法1:使用nacos提供的Java SDK

     1    public static final String SERVER_ADDR = "127.0.0.1:8848";
     2     public static final String TEST_NAMESPACE = "5f86c5a7-3bf1-4108-966f-c25ebebf7803";
     3 
     4     /**
     5      * 使用NacosFactory 从nacos配置中心获取城市编码列表
     6      * @return
     7      */
     8     @SneakyThrows
     9     @GetMapping("getCityCodeListByNacosFactory")
    10     public JSONArray getCityCodeListByNacosFactory() {
    11         Properties properties = new Properties();
    12         // nacos服务器地址,127.0.0.1:8848
    13         properties.put(PropertyKeyConst.SERVER_ADDR, SERVER_ADDR);
    14         // 配置中心的命名空间id
    15         properties.put(PropertyKeyConst.NAMESPACE, TEST_NAMESPACE);
    16         ConfigService configService = NacosFactory.createConfigService(properties);
    17         // 根据dataId、group定位到具体配置文件,获取其内容. 方法中的三个参数分别是: dataId, group, 超时时间
    18         String content = configService.getConfig("CityCodeList", "DEFAULT_GROUP", 3000L);
    19         // 因为我的配置内容是JSON数组字符串,这里将字符串转为JSON数组
    20         return JSONUtil.parseArray(content);
    21     }

     使用NacosFactory提供的方法,通过服务器地址serverAddr、命名空间id namespace、dataId、group定位并读取配置文件中的内容。

     参考官方文档:Nacos Java SDK 获取配置

    4. 读取配置信息.  方法2:使用nacos提供的Open API

     1     public static final String SERVER_ADDR = "127.0.0.1:8848";
     2     public static final String TEST_NAMESPACE = "5f86c5a7-3bf1-4108-966f-c25ebebf7803";
     3 
     4     /**
     5      * 使用nacos的OPEN API 读取配置中心的配置
     6      * @return
     7      */
     8     @GetMapping("getCityCodeListByNacosOpenAPI")
     9     public JSONArray getCityCodeListByNacosOpenAPI() {
    10         Map<String, Object> paramMap = new HashMap<>(3);
    11         // 租户信息,对应nacos命名空间id字段
    12         paramMap.put("tenant", TEST_NAMESPACE);
    13         // dataId
    14         paramMap.put(Constants.DATAID, "CityCodeList");
    15         // group
    16         paramMap.put(Constants.GROUP, "DEFAULT_GROUP");
    17         // url: http://127.0.0.1:8848/nacos/v1/cs/configs
    18         String content = HttpUtil.get(SERVER_ADDR + "/nacos" + Constants.CONFIG_CONTROLLER_PATH, paramMap);
    19         // 因为我的配置内容是JSON数组字符串,这里将字符串转为JSON数组
    20         return JSONUtil.parseArray(content);
    21     }

    调用nacos提供的Open API接口,发送get请求,获取配置文件中的内容。

    参考官方文档:Nacos Open API 获取配置

  • 相关阅读:
    Git常用命令清单笔记
    MySQL sql语句获取当前日期|时间|时间戳
    mysql-5.7.17.msi安装
    mysql sql语句大全
    解决Springboot集成ActivitiModel提示输入用户名密码的问题
    JAVA Spring MVC中各个filter的用法
    Spring Boot gradle 集成servlet/jsp 教程及示例
    RequireJS 参考文章
    Javascript模块化工具require.js教程
    Javascript模块化编程之路——(require.js)
  • 原文地址:https://www.cnblogs.com/nemowang1996/p/13407923.html
Copyright © 2011-2022 走看看