开发者社区 > 云原生 > 正文

请问nacos 接入map或者list 对象有相关文档么?

请问nacos 接入map或者list 对象有相关文档么?

展开
收起
哈喽!小陈 2022-07-25 13:06:31 902 0
4 条回答
写回答
取消 提交回答
  • nacos yaml map配置,yaml map配置key使用数字,yaml map嵌套map配置。

    • list配置
    mqtt:
      topic:
        # 应用模拟器
        application:
          # 应用监听【订阅】
          listeners: 
            # 设备属性上报
            - name: propertiesReport
              value: oc/devices/%s/%s/properties/report
              show: true
            # 设备消息上报
            - name: messagesUp
              value: oc/devices/%s/%s/messages/up
              show: false
            # 设备命令回复
            - name: commandsResponse
              value: oc/devices/%s/%s/commands/response
              show: false
            # 设备事件上报
            - name: eventsUp
              value: oc/devices/%s/%s/events/up
              show: false
          # 应用下发【发布】  
          down:
            # 平台消息下发
            - name: messagesDown
              value: oc/devices/%s/%s/messages/down
              show: false
            # 平台命令下发
            - name: commandsDown
              value: oc/devices/%s/%s/commands/down
              show: false
            # 平台事件下发
            - name: eventsDown
              value: oc/devices/%s/%s/events/down
              show: true
        # 设备模拟器
        simulator:
          # 设备监听【订阅】
          listeners: 
            # 平台消息下发
            - name: messagesDown
              value: oc/devices/%s/%s/messages/down
              show: false
            # 平台事件下发
            - name: eventsDown
              value: oc/devices/%s/%s/events/down
              show: true
            # 平台消息下发
            - name: commandsDown
              value: oc/devices/%s/%s/commands/down
              show: false
          # 设备上报【发布】  
          up:
            # 设备消息上报
            - name: messageUp
              value: oc/devices/%s/%s/messages/up
              show: false
            # 设备命令回复
            - name: commandsResponse
              value: oc/devices/%s/%s/commands/response
              show: false
            # 设备属性上报
            - name: propertiesReport
              value: oc/devices/%s/%s/properties/report
              show: true
            # 设备事件上报
            - name: eventsUp
              value: oc/devices/%s/%s/events/up
              show: false
    
    • map配置
    
    1111:
      maintenance:
        pwc:
          en:
            '1': Engine oil
            '2': 2222
          jp:
            '1': Engine oil
            '2': 2222
    
    • map 嵌套 list
    1111:
      maintenance:
        item:
          en:
            - index: 1
              name: Engine oil
              type: 1
            - index: 2
              name: Air cleaner
              type: 2
            - index: 3
              name: Brake fluid
              type: 2
            - index: 4
              name: Brake pads
              type: 2
            - index: 5
              name: Coolant
              type: 2
            - index: 6
              name: Gearcase oil
              type: 2
            - index: 7
              name: Oil change
              type: 2
            - index: 8
              name: Oil filter
              type: 1,2
            - index: 9
              name: Tire change
              type: 2
            - index: 10
              name: Tire Pressure
              type: 2
            - index: 11
              name: Wheel parts
              type: 2
            - index: 12
              name: Regular inspection
              type: 2
            - index: 13
              name: Handlebar pivot lubrication
              type: 1
            - index: 14
              name: Joint lubrication
              type: 1
            - index: 15
              name: Spark plugs
              type: 1
            - index: 16
              name: Regular points inspection
              type: 1
            - index: 17
              name: Other
              type: 1,2
          #日语先用英语代替
          jp:
            - index: 1
              name: Engine oil
              type: 1
            - index: 2
              name: Air cleaner
              type: 2
            - index: 3
              name: Brake fluid
              type: 2
            - index: 4
              name: Brake pads
              type: 2
            - index: 5
              name: Coolant
              type: 2
            - index: 6
              name: Gearcase oil
              type: 2
            - index: 7
              name: Oil change
              type: 2
            - index: 8
              name: Oil filter
              type: 1,2
            - index: 9
              name: Tire change
              type: 2
            - index: 10
              name: Tire Pressure
              type: 2
            - index: 11
              name: Wheel parts
              type: 2
            - index: 12
              name: Regular inspection
              type: 2
            - index: 13
              name: Handlebar pivot lubrication
              type: 1
            - index: 14
              name: Joint lubrication
              type: 1
            - index: 15
              name: Spark plugs
              type: 1
            - index: 16
              name: Regular points inspection
              type: 1
            - index: 17
              name: Other
              type: 1,2
    

    ——参考连接

    2023-11-30 21:28:45
    赞同 展开评论 打赏
  • Nacos 是一个动态服务发现、配置和服务管理平台,专门用于构建云原生应用。对于 Nacos 接入 Map 或 List 对象,可以参考以下步骤:

    定义对应的实体类:根据需要,定义一个实体类来接收从 Nacos 读取的配置。
    使用 @ConfigurationProperties 注解:在实体类中使用 @ConfigurationProperties 注解,将配置文件中的属性值映射到实体类的属性中。例如,如果要从配置文件中读取一个 Map 类型的属性,可以在实体类中使用 Map 类型的变量,并使用 @ConfigurationProperties 注解来绑定这个变量。
    例如:图片.png
    在上面的代码中,@ConfigurationProperties(prefix = "map") 注解表示将配置文件中名为 "map" 的配置项映射到实体类中的 map 变量。当 Nacos 中读取到配置后,会自动将配置转换成 Map 类型,并赋值给 map 变量。注意这里的 setMap 方法是必须的,否则 map 变量无法获取到值。

    至于 List 类型的变量,定义方式类似,只需将变量类型改为 List 即可。例如:图片.png
    上述代码中,@ConfigurationProperties(prefix = "list") 注解表示将配置文件中名为 "list" 的配置项映射到实体类中的 list 变量。当 Nacos 中读取到配置后,会自动将配置转换成 List 类型,并赋值给 list 变量。注意这里的 setList 方法是必须的,否则 list 变量无法获取到值。

    2023-11-29 09:44:46
    赞同 展开评论 打赏
  • 是的,Nacos 提供了对 Map 和 List 对象的接入支持。您可以参考 Nacos 的官方文档,其中包含了与 Map 和 List 对象相关的使用说明和示例代码。

    要接入 Map 对象,您可以使用 Nacos 的命名服务(Naming Service)和配置中心(Configuration Center)。通过在 Nacos 的配置中心创建一个配置项(Configuration Item),您可以将 Map 对象作为配置项的值进行存储和访问。在客户端,您可以使用 Nacos 的配置引用(Configuration Reference)功能来引用该配置项,并获取 Map 对象。

    类似地,您也可以使用 Nacos 的命名服务和配置中心来接入 List 对象。在配置中心创建一个包含 List 对象的配置项后,您可以在客户端使用配置引用功能来获取该 List 对象。

    请注意,具体的接入方式和代码实现可能因 Nacos 版本的不同而有所差异。因此,建议您查阅 Nacos 的官方文档以获取最新和详细的使用说明和示例代码。

    2023-11-29 09:44:48
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    是的,Nacos 支持将 Map 和 List 对象作为配置项进行存储和调用。关于如何使用 Map 和 List,您可以参考 Nacos 官方文档中的相关章节。这里给您提供一些关键信息:

    1. 在 Nacos 配置文件中,您可以使用 properties 配置文件来存储 Map 和 List 对象。例如:

    properties {
    property {
    name = "map.key"
    value = "{\"key1\": \"value1\", \"key2\": \"value2\"}"
    }
    property {
    name = "list.key"
    value = "[\"value1\", \"value2\", \"value3\"]"
    }
    }
    CopyCopy

    1. 在 Nacos 客户端中,您可以使用 ConfigUtil 工具类来获取 Map 和 List 对象。例如:

    import com.alibaba.nacos.config.ConfigUtil;
    import java.util.Map;
    import java.util.List;
    public class NacosDemo {
    public static void main(String[] args) {
    // 获取配置实例
    ConfigUtil configUtil = ConfigUtil.getConfigUtil();

        // 获取 Map 对象
        Map<String, String> map = configUtil.getConfigMap("map.key");
        System.out.println("Map 对象: " + map);
    
        // 获取 List 对象
        List<String> list = configUtil.getConfigList("list.key");
        System.out.println("List 对象: " + list);
    }
    

    }
    CopyCopy

    1. 您还可以使用 Nacos 的 @Value 注解来注入 Map 和 List 对象。例如:

    import com.alibaba.nacos.config.annotation.NacosValue;
    public class NacosDemo {
    @NacosValue(value = "${map.key}", autoRefreshed = true)
    private Map map;
    @NacosValue(value = "${list.key}", autoRefreshed = true)
    private List list;
    public void print() {
    System.out.println("Map 对象: " + map);
    System.out.println("List 对象: " + list);
    }
    }
    CopyCopy

    以上是关于 Nacos 接入 Map 和 List 对象

    2023-11-25 22:23:46
    赞同 展开评论 打赏
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载