springcloud项目报错: Could not resolve placeholder ‘hello‘ in value “${hello}“

如下图:
springcloud项目中配置了一个配置中心的子工程,以及注册中心,orderService,并使用gitee作为配置中心的持久化存储,
在这里插入图片描述
order-service-provider 配置项如下:

spring:
  application:
    name: order-service
  cloud:
    config:
      discovery:
        enabled: true
        service-id: spring-cloud-config-server-9091
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9090/eureka
server:
  port: 8082

在分别启动注册中心,配置中心子项目后,启动order-service项目时报了如下错误:
在这里插入图片描述
原因是,spring加载外部配置时的启动顺序问题,因为这里是从配置中心读取外部化配置,而@Value注解是从Environment中读取配置的,如果外部配置还没读取到,此时就报上图错误。因此,使用外部配置时,要保证外部配置一定先初始化完成,而springboot中,bootstrap.yml就是启动的配置,springboot在启动时会优先加载bootstrap.yml中的配置;因此,可以把order-service中 config-server和eureka-server的配置都放在bootstrap.yml中 :
如下:
在这里插入图片描述
然后从起order-service-provider项目成功!代码地址如下:
添加链接描述

猜你喜欢

转载自blog.csdn.net/weixin_41300437/article/details/111462328