问题描述

apollo配置了namespaces却不生效,一直报错说命名空间找不到配置
在这里插入图片描述
运行时提示在application找不到配置
在这里插入图片描述

问题分析

我就很纳闷,我yml文件配置上完全没有问题啊,我明明指定了xxx-config的namespaces,怎么就非得跑去application去了???这到底是什么问题,是apollo被封装的原因?

问题解决

我先在启动类的@EnableApolloConfig上强制指定namespaces
在这里插入图片描述
这时候一启动就正常了,能正常指向namespaces。

但是我们真的要这么做吗?从来没有见过这种配置文件部分不生效的问题。集群、appid都生效了,怎么可能namespaces会不生效?

不妨换一个思路:配置文件是生效了的!
那就是我的apollo配置中心有问题!回到配置中心研究一下
在这里插入图片描述

我的applicationnamespaces是由于我拿到的账号没有权限操作,并未进行任何操作。那会不会真的是找不到application中的任何配置,而不是说我配置文件不生效,跑到了application中。在获取到权限后未点击发布时,会提示如下语句。
在这里插入图片描述
我们将application点击发布后,再将启动类中的注解上指定namespaces移除。就一切正常了。

总结

这属于apollo的一个天坑了:即使不使用application命名空间,也要点击发布!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐