SpringCloud 开发随笔
Nacos 配置中心
Nacos Config 引入不生效
错误日志信息
Spring Cloud 项目引入 Nacos Config 的 Maven 依赖后,使用 @Value
注解无法读取 Nacos 配置中心的内容,抛出的异常信息如下
1 | Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'common.name' in value "${common.name}" |
第一种错误原因
Spring Cloud 无法读取项目中的 bootstrap.yml
配置文件,此时需要额外引入 spring-cloud-starter-bootstrap
依赖来解决
1 | <dependency> |
第二种错误原因
项目中 bootstrap.yml
配置文件的内容有误,导致 Nacos Config Spring Cloud 无法通过正确的 dataId
去 Nacos 配置中心获取对应的配置信息,正确的配置示例如下所示:
1 | server: |
上述
bootstrap.yml
配置文件对应的 Nacos Config 配置内容如下图所示
上述
bootstrap.yml
配置文件的详细说明如下
在 bootstrap.yaml
配置文件中,需要配置 spring.application.name
,因为它是构成 Nacos Config 配置管理 dataId
字段的一部分。值得一提的是,在 Nacos Config Spring Cloud 中,dataId
的完整格式如下:
1 | ${prefix}-${spring.profiles.active}.${file-extension} |
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置,目前只支持properties
和yaml
类型spring.profiles.active
即为当前环境对应的profile
。特别注意:当spring.profiles.active
为空时,对应的连接符-
也将不存在,dataId
的拼接格式会变成${prefix}.${file-extension}