【问题标题】:How to get spring config array value from OS environment variable?如何从 OS 环境变量中获取 spring 配置数组值?
【发布时间】:2021-12-29 00:26:12
【问题描述】:

我已经开发了 spring cloud gateway,我想通过 os 环境变量管理 spring cloud gateway config vaule 但是 spring cloud gateway config vaule 包含数组值 我不知道如何导出像数组这样的操作系统环境变量 例子

spring:
  cloud:
    gateway:
      globalcors:
        corsConfigurations:
          '[/**]':
            allowedOrigins:
              - "https://example1.com/"
              - "https://example2.com/"
      routes:
        - id: ex1
          uri: http://ex1.com/
        - id: ex2
          uri: http://ex2.com/

如何导出操作系统环境变量???

【问题讨论】:

    标签: spring spring-boot spring-cloud-gateway


    【解决方案1】:

    可以使用环境变量来设置这些,使用标准 Spring 属性到环境变量模式(全部大写,下划线)。但是,我建议使用 application.properties 文件(或 bootstrap.yml)来管理更复杂的配置以及 Spring 配置文件功能。参考:https://docs.spring.io/spring-boot/docs/2.5.6/reference/htmlsingle/#features.external-config.files.profile-specific

    然后使用SPRING_PROFILES_ACTIVE 设置您希望应用在运行时使用的配置文件。环境变量并不是真的适合每个属性,并且最适合简单的键=值对。属性文件和配置文件最适合更复杂的设置。混合这两种方法以获得最佳效果。

    为了充实我的回复,你的环境变量应该是这样的:

    SPRING_CLOUD_GATEWAY_GLOBALCORS_CORSCONFIGURATIONS='[/**]'
    SPRING_CLOUD_GATEWAY_GLOBALCORS_CORSCONFIGURATIONS_ALLOWEDORIGINS="https://example1.com/"
    SPRING_CLOUD_GATEWAY_GLOBALCORS_CORSCONFIGURATIONS_ALLOWEDORIGINS="https://example2.com/"
    

    或者可能:

    SPRING_CLOUD_GATEWAY_GLOBALCORS_CORSCONFIGURATIONS='[/**]'
    SPRING_CLOUD_GATEWAY_GLOBALCORS_CORSCONFIGURATIONS_ALLOWEDORIGINS="https://example1.com/, https://example2.com/"
    

    我不确定多个值是逗号还是空格分隔。

    【讨论】:

      猜你喜欢
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2016-08-06
      • 2019-08-03
      • 1970-01-01
      • 2018-09-02
      • 2015-11-22
      相关资源
      最近更新 更多