首页 > 其他分享 >nacos 动态刷新 数组对象 List/数组类型、复杂类对象配置

nacos 动态刷新 数组对象 List/数组类型、复杂类对象配置

时间:2024-01-19 12:24:32浏览次数:23  
标签:对象 List nacos 数组 刷新 NacosValue

@Value 环境依赖版本 SpringCloud 是个大前提,不然还是考虑上面方式或者原生接入方案;

@NacosPropertySource(dataId = "mydata", autoRefreshed = true) 同时 @RefreshScope 方能接收到nacos的push数据。

@NacosValue 依赖springboot

Nacos动态刷新基本数据类型很简单,只需要在字段上使用@NacosValue注解就可以,如:

 但是@NacosValue并不支持复杂类型配置的动态刷新,例如List/数组类型、非基本类类型对象。

如:@NacosValue就不能动态刷新Strategies对象,因为他是一个List<Strategy>。

 要想动态刷新List/数组类型、复杂类对象,可以使用@NacosConfigurationProperties以及@NacosConfigListener。

接下来介绍两种注解的使用

前置条件:在nacos创建一个groupId为testGroup的group,然后在testGroup下创建文件名为testDataId.yaml(即dataId)的配置文件。

文件内容如下:

@NacosConfigurationProperties使用如下:

简单修改TestProperties对象就可满足

 每次在nacos中修改任意值,spring容器中的TestProperties都会同步最新的配置。

@NacosConfigListener使用如下:

TestProperrties如下所示:

然后创建TestConfig对象,如下:

被@NacosConfigListener注解的方法会在其指定的grouId和dataId对应的nacos中的配置文件修改时被调用,且将修改后的配置的内容整体当成字符串传入进来。

因为传入的msg是yaml格式的配置,所以我们需要去解析这个yaml格式的字符串并手动更新

TestProperties对象。

解析方式参考getNewProperties方法。
————————————————
版权声明:本文为CSDN博主「Dingshuangwu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43795033/article/details/126272024

标签:对象,List,nacos,数组,刷新,NacosValue
From: https://www.cnblogs.com/h2285409/p/17974354

相关文章

  • 对象数组,根据字符串字段,并按默认方式排序
    sort在字符串的默认排序,是按unicode字节码排序的,一般字符串的排序可以通过strA.localeCompare(strB)来完成,但我这里必须要按字符串的默认方式排序。list=list.sort((a,b)=>{varjobA=a.Job;varjobB=b.Job;......
  • Leetcode 26 删除数组重复项
    题目描述给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确保你的题解可以被通过:更改数......
  • 数组的逆排序
    include<stdio.h>//实现函数初始化数组为全0voidInit(intarr[],intsz){inti=0;for(i=0;i<sz;i++){arr[i]=0;}}//打印数组的每个元素voidPrint(intarr[],intsz){inti=0;for(i=0;i<sz;i++){printf("%d",arr[i]);}printf(&qu......
  • Java里ArrayList中的toArray()用法
    深入理解List的toArray()方法和toArray(T[]a)方法这两个方法都是将列表List中的元素转导出为数组,不同的是,toArray()方法导出的是Object类型数组,而toArray[T[]a]方法导出的是指定类型的数组。下面是两个方法的申明及说明,摘自Java8的API文档。toArray()方法的分析Object[]toA......
  • 代码随想录 day23 修剪二叉搜索树 将有序数组转换为二叉搜索树 把二叉搜索树转换为累
    修剪二叉搜索树这道题不能直接写删除代码因为要涉及父子关系的保留如这样是暴力删掉不符合区间的节点但是没有保留父子关系这里我们把不符合区间的节点通过一个临时节点传递出来然后在外面合适方向接住具体怎么接住的呢其实就是对于root来说左边子树抛出的节点就会......
  • Asp .Net Core 系列:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现
    目录简介什么是Ocelot?什么是Nacos?什么是Swagger?什么是Cors?Asp.NetCore集成Ocelot网关集成Nacos下游配置Nacos配置跨域(Cors)网关和微服务中配置Swagger效果简介什么是Ocelot?Ocelot是一个开源的ASP.NETCore微服务网关,它提供了API网关所需的所有功能,如路由、......
  • 912.排序数组--归并排序
    1.题目介绍给你一个整数数组nums,请你将该数组升序排列。示例1:输入:nums=[5,2,3,1]输出:[1,2,3,5]示例2:输入:nums=[5,1,1,2,0,0]输出:[0,0,1,1,2,5]2.题解2.1归并排序思路归并排序利用了分治的思想来对序列进行排序。对一个长为n的待排序的序列,我们将其分解成两个......
  • 数组的运用和方法的运用
    ##对reduce等基础的数组方法无法熟练组合运用constmovements=[200,450,-400,3000,-650,-130,70,1300];constlabelSumIn=document.querySelector('.summary**value--in');constlabelSumOut=document.querySelector('.summary**value--out');constl......
  • JavaScript数组使用方法
    constarr=[4,3,2,1];/*操作数组*///在末尾添加元素arr.push(5);//结果:[4,3,2,1,5]//在开头添加元素arr.unshift(0);//结果:[0,4,3,2,1,5]//移除最后一个元素arr.pop();//结果:[0,4,3,2,1]//移除第一个元素arr.shift();//结果:[4,3,2......
  • C# .net中PropertyDescriptor的使用和BindingList的ApplySort排序
    找了好多资料都是java中PropertyDescriptor的使用,至于C#中的都抄袭别人的,又讲不清楚怎么用。官方文档也没不会手把手教你怎么用,经过一下午的研究,结果如下1、找到PropertyDescriptor同一dll下的,使用TypeDescriptor反射出属性的PropertyDescriptorCollection,从这里拿出对应属性的P......