Apollo取不到key想要的值
如本地环境变量中存在于apollo相同的key优先使用本地环境变量,比如你本地System.getenv()中存在USERNAME=Administrator ,然后apollo也配置了userName =XXXXX,此时生效的是Administrator 就出现问题了,所以就好奇看了看源码。
问题就出现在这个value = System.getenv(key)中
com.ctrip.framework.apollo.internals.DefaultConfig#getProperty
这里有个theCaseInsensitiveEnvironment 它是TreeMap,这里定义的比较器 nameComparator 是不区分大小写的,所以就获取了本地的环境中的USERNAME对应值,就导致了那不到apollo的值
有点坑,但是还是得规范化命名key,避免各种问题