Nacos错把命名空间名称当成ID导致读取不到配置
Contents
nacos错把命名空间名称当成NameSpace导致读取不到配置
这个BUG是最近公司实习遇到的,公司的项目配置文件都不能直接硬编码在 yml 文件中,需要全部移动到nacos中,并且在 bootstrap.yml 文件中也不能直接编写nacos的账户密码,需要放到 pom.xml 文件中进行管理,如下:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profile.active>dev</profile.active>
<password>password</password>
<nacosNamespace>namsespace</nacosNamespace>
<nacosAddress>127.0.0.1:8424</nacosAddress>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
<password>password</password>
<nacosNamespace>namsespace</nacosNamespace>
<nacosAddress>127.0.0.1:8848</nacosAddress>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile.active>prod</profile.active>
<password>password</password>
<nacosNamespace>namsespace</nacosNamespace>
<nacosAddress>127.0.0.1:8848</nacosAddress>
</properties>
</profile>
</profiles>在 bootstrap.yml 中要根据如下格式读取
spring:
application:
name: service
profiles:
active: @profile.active@
cloud:
nacos:
config:
username: nacos
password: @password@
namespace: @nacosNamespace@
serverAddr: @nacosAddress@
file-extension: yaml
refresh-enabled: true我当时还是第一次使用这种方式配置nacos,由于看之前的代码 namespace 和 nacos 中的命名空间名称是一样的,以为就是一个东西,但是没想到是之前创建命名空间时指定了 namespace 和名称一样,天真的我没有指定,namespace 是随机生成的密文,导致我填 namespace 时采用了名称,一直读取不到配置。报错如下:

