SpringCloud从配置中心读取git配置成功却没有效果

SpringCloud从配置中心读取git配置成功却没有效果

客户端bootstrap.yml:

spring:
  cloud:
    config:
      name: user-provider
      profile: dev
      label: master
      uri: http://localhost:8000

  application:
    name: user-provider

  profiles:
    active: dev

management:
  endpoints:
    web:
      exposure:
        include: refresh

git的user-provider-dev.yml:

server:
  port: 7001
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka,http://localhost:8762/eureka
  instance:
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}:@project.version@
    
spring:
  profiles:
    env1

uname: laohu

解决方法:
删掉git的user-provider-dev.yml.配置中的

spring:
  profiles:
    env1

原因:
chatgpt:

问题的原因是 git 配置文件中的 spring.profiles 配置导致了Spring Boot无法正确激活配置文件。

在 bootstrap.yml 中,指定了 profile 为 prod,但在 git 的 user-provider-dev.yml 文件中,又定义了一个 spring.profiles 配置,这可能导致Spring Cloud Config加载配置时出现混淆。

具体原因如下:

配置文件冲突:当Spring Cloud Config从配置中心读取配置时,它会根据激活的profile来选择具体的配置文件。如果配置文件中包含 spring.profiles,可能会改变应用程序的运行环境,从而导致配置文件加载顺序和实际生效的配置发生变化。

优先级问题:Spring Boot中,bootstrap.yml 的加载优先级高于 application.yml。如果 bootstrap.yml 中激活了 prod profile,但 git 配置文件中存在 spring.profiles,可能会覆盖或改变 bootstrap.yml 中的配置,使得某些配置未生效。

通过删除 git 配置文件中的 spring.profiles 配置,可以避免Spring Cloud Config在加载配置时发生冲突或混淆,从而确保配置正确生效。

总结:git 配置文件中的 spring.profiles 配置导致了Spring Cloud Config无法正确激活预期的配置文件,从而导致配置不生效。删除该配置可以解决问题。

我觉得就是配置冲突了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

分才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值