为什么使用nacos-config-spring-boot-starter版本0.2.10,配置注解@NacosConfigurationProperties(autoRefreshed = true),当配置存在map类型,移除元素无效,保留的还是原来的数据

olmpazwi  于 5个月前  发布在  Nacos
关注(0)|答案(7)|浏览(103)

为什么nacos-config-spring-boot-starter版本0.2.10,配置注解@NacosConfigurationProperties(autoRefreshed = true),当配置存在map类型,移除元素无效,保留的还是原来的数据?

wgeznvg7

wgeznvg71#

nacos-client 版本是2.0.2

tuwxkamq

tuwxkamq2#

其他类型数据都可以更新吗?

zlwx9yxi

zlwx9yxi3#

基本数据类型可以更新,比如int,float这种,但是如果是map<String,Object>,删除元素没有效果的,新增或修改元素有效。

nwlls2ji

nwlls2ji4#

几年前好像遇到过类似问题, map的具体类型换成ConcurrentHashMap看看能否解决?。。。

cotxawn7

cotxawn75#

几年前好像遇到过类似问题, map的具体类型换成ConcurrentHashMap看看能否解决?。。。

不能解决,元素移除还是无效

nnt7mjpx

nnt7mjpx6#

能否提供一下复现此问题的demo?

0x6upsns

0x6upsns7#

从描述上看, 配置推送是生效的, 可能是spring boot框架的限制,只能往里put(新增和覆盖),remove的话不好做。

也可能是starter实现上的问题,比如只就foreach 做put, 没有做对比移除掉不需要的key。

如果愿意帮社区排查的话,可以定位一下,然后提PR到starter仓库。

相关问题