问题描述:所有注解配置都没错误,但是取不到配置中心的值
这里配置中心的文件名为:
nacos-restful-consumer.yaml |
下面是关于bootstrap.yaml 的配置 文件后缀名为yaml
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848 # 配置中心地址
file-extension: yaml
group: DEFAULT_GROUP
下面是关于application.yaml的配置
server:
port: 8081
provider:
address: 127.0.0.1:8080
dubbo:
consumer:
check: false
nacos:
server:
addr: 127.0.0.1:8848
spring:
application:
name: nacos-consumer
cloud:
nacos:
discovery:
server-addr: ${nacos.server.addr} # 配置中心地址
经过检查controller配置没有问题
@RefreshScope //动态更新配置 @RestController public class RestConsumerController { @Value("${name}") private String name; @GetMapping(value = "/configs") public String getvalue(){ return name; } }
在这样的情况下,就会报找不到**属性的错误
解决方法如下:
1.文件后缀不一致配置中心的为.yaml/yml后缀,后端bootstrap的后缀也要是yaml/yml,(这里可能不是出错的根本原因)
2.配置中心的文件名nacos-restful-consumer 与application.yaml的配置项目名spring: application: name: nacos-consumer 要一致,这里不一致就导致报错 把配置项目名 nacos-consumer 改为 nacos-restful-consumer
最后pom文件一定要加上从配置中心获取配置添加nacos-config的依赖: (没有以上问题,还不能解决,可能就是没有加这个依赖)
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
这样就可以对应到配置文件 ,就可以取到配置文件中的值了,希望可以帮助到你!!