Apollo取不到key想要的值

如本地环境变量中存在于apollo相同的key优先使用本地环境变量,比如你本地System.getenv()中存在USERNAME=Administrator ,然后apollo也配置了userName =XXXXX,此时生效的是Administrator 就出现问题了,所以就好奇看了看源码。

问题就出现在这个value = System.getenv(key)中
com.ctrip.framework.apollo.internals.DefaultConfig#getProperty

image

这里有个theCaseInsensitiveEnvironment 它是TreeMap,这里定义的比较器 nameComparator 是不区分大小写的,所以就获取了本地的环境中的USERNAME对应值,就导致了那不到apollo的值
image

有点坑,但是还是得规范化命名key,避免各种问题

posted @ 2022-07-12 14:34  liuhuayiye  阅读(274)  评论(0编辑  收藏  举报