如何从 OS 环境变量中获取 spring 配置数组值?

How to get spring config array value from OS environment variable?

我开发了 spring 云网关,我想通过 os 环境变量管理 spring 云网关配置值 但是 spring 云网关配置值包含数组值 我不确定如何像数组一样导出 os 环境变量 示例

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/

如何导出 os 环境变量 ???

使用标准 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/"

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