首页 > 解决方案 > 无法将“eureka.client.enabled”下的属性绑定到布尔值

问题描述

为什么新的spring-cloud-config这么复杂?

我想做以下事情:默认启用尤里卡并将其添加到一些配置文件中(不是全部)。
无论我以哪种方式尝试它,它都不起作用。
我得到这个错误Failed to bind properties under 'eureka.client.enabled' to boolean

第一种方式:

server:
  port: 8080

eureka:
  client:
    enabled: false # default disabled
  instance:
    leaseRenewalIntervalInSeconds: 10
    prefer-ip-address: false
    hostname: 127.0.0.1

spring:
  application:
    name: app
  main:
    banner-mode: off
  cloud:
    config:
      enabled: false
      discovery:
        enabled: true
        service-id: config-server
      fail-fast: true
      retry:
        max-attempts: 5

application:
  value: app-default

---

spring:
  config:
    activate:
      on-profile: dev

application:
  value: app-dev

---

spring:
  config:
    activate:
      on-profile: qa
    import: "configserver:"
  cloud:
    config:
      enabled: true

eureka:
  client:
    enabled: true # enable it in profile "qa"
    serviceUrl:
      defaultZone: http://127.0.0.1:8761/eureka/

application:
  value: app-qa

第二种方式:

server:
  port: 8080

eureka:
  client:
    enabled: true # default enabled
  instance:
    leaseRenewalIntervalInSeconds: 10
    prefer-ip-address: false
    hostname: 127.0.0.1

spring:
  application:
    name: app
  main:
    banner-mode: off
  cloud:
    config:
      enabled: false
      discovery:
        enabled: true
        service-id: config-server
      fail-fast: true
      retry:
        max-attempts: 5

application:
  value: app-default

---

spring:
  config:
    activate:
      on-profile: dev

eureka:
  client:
    enabled: false # disable in profile "dev"

application:
  value: app-dev

---

spring:
  config:
    activate:
      on-profile: qa
    import: "configserver:"
  cloud:
    config:
      enabled: true

eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:8761/eureka/ # I also need a profile specific url

application:
  value: app-qa

如果我激活 eureka 一次并且不再使用eureka.client.enabled,则会发生 url 错误:Failed to bind properties under 'eureka.client.serviceUrl. defaultZone' to String- 但无论如何我都需要这个配置文件特定的 url!

这一切都与新的spring-cloud-config. 因为在我删除了配置服务器的所有行并注释掉了spring-cloud-starter-config依赖项之后,两个带有 eureka 的变体都起作用了!还是根据这些东西
我有错误?spring-cloud-config

版本:

    <spring-boot.version>2.5.2</spring-boot.version>
    <spring-cloud.version>2020.0.3</spring-cloud.version>

标签: spring-bootyamlspring-cloudspring-cloud-config

解决方案


推荐阅读