【问题标题】:Spring ignores `spring.cloud.config.discovery` set as default propertiesSpring 忽略 `spring.cloud.config.discovery` 设置为默认属性
【发布时间】:2018-10-31 05:43:20
【问题描述】:

我正在尝试创建 Spring 应用程序而不引用任何外部文件。这应该是一个模块,然后您将其作为依赖项包含在内,配置并用于将服务插入现有生态系统。我就是这样做的:

Map<String, Object> properties = new HashMap<>();
properties.put("server.address", "0.0.0.0")
properties.put("server.port", 8080)
properties.put("spring.profiles.active", "cloud")
properties.put("spring.application.name", "someApp")
properties.put("spring.cloud.config.failFast", true)
properties.put("spring.cloud.config.discovery.enabled", true)
properties.put("spring.cloud.config.discovery.serviceId", "config")
properties.put("eureka.instance.preferIpAddress", true)
properties.put("eureka.instance.statusPageUrlPath", "/health")

new SpringApplicationBuilder()
  .bannerMode(Banner.Mode.OFF)
  .properties(properties)
  .sources(SpringConfiguration.class)
  .web(false)
  .registerShutdownHook(true)
  .build()

然后我继续在运行命令中通过环境变量提供 Eureka 默认区域:

--env eureka_client_serviceUrl_defaultZone='http://some-host:8765/eureka/' --env SPRING_CLOUD_CONFIG_LABEL='dev' --env SPRING_CLOUD_INETUTILS_PREFERRED_NETWORKS='10.0'

应用程序在 Eureka 中成功注册,但不幸的是,它尝试在此之前获取配置,并且它正在默认 URL (http://localhost:8888) 下查找它,而不是从注册表中获取配置服务器 IP。是的,如果我将所有这些属性都放在bootstrap.yml 文件中,它确实有效。我可以在不使用文件资源的情况下以某种方式使其工作吗?

【问题讨论】:

    标签: spring spring-cloud spring-cloud-config spring-config


    【解决方案1】:

    您正在使用负责 SpringApplication 和 ApplicationContext 实例的 SpringApplicationBuilder 传递属性。

    根据文档,此处提供的属性将是 ApplicationContext 而不是 BootstrapContext 的一部分。 ApplicationContext 是 BootstrapContext 的子级。

    您可以在此处阅读有关引导上下文的更多信息 -

    http://cloud.spring.io/spring-cloud-commons/1.3.x/single/spring-cloud-commons.html#_the_bootstrap_application_context

    Bootstrap.yml/properties 用于配置您的引导上下文。

    您可以查看这些属性来更改文件的名称或位置 -

                     spring.cloud.bootstrap.name - bootstrap(default)
                     spring.cloud.bootstrap.location
    

    您必须使用文件资源(yml 或属性)。

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多