Yaml 设置SpringCloudGateway通过环境变量筛选属性

Yaml 设置SpringCloudGateway通过环境变量筛选属性,yaml,spring-cloud-gateway,Yaml,Spring Cloud Gateway,我创建了2个过滤器,比如CustomFilter1和CustomFilter2,它们的配置已设置 spring: cloud: gateway: default-filters: - name: CustomRequestFilter1 args: key1: someValue - name: CustomRequestFilter2 args: k

我创建了2个过滤器,比如CustomFilter1和CustomFilter2,它们的配置已设置

spring:
  cloud:
    gateway:
      default-filters:
        - name: CustomRequestFilter1
          args:
            key1: someValue 
        - name: CustomRequestFilter2
          args:
            key2: someVvalue        
注意:这些默认值实际上是在java中设置的,我这样写的,没有深入讨论类的细节,但问题仍然是一样的

如何通过env变量以干净的方式覆盖键1/键2的值,而不扰乱顺序

我找到的一种方法是使用
spring.cloud.gateway.default过滤器[0]。args[key1]=“someOtherValue”
,但这种方法需要知道application.yml中定义的过滤器的顺序。另外,看起来使用此选项时,第二个
CustomRequestFilter2
过滤器根本不被调用


如何通过env变量设置这些嵌套值?

最后,我决定采用Spring cloud Gateway方法,他们使用外部属性,即
@ConfigurationProperties