设置 Spring 云网关通过环境变量过滤属性
Setting Spring cloud Gateway Filters properties through env variables
我创建了 2 个过滤器,比如说 CustomFilter1 和 CustomFilter2,它们的配置已设置
spring:
cloud:
gateway:
default-filters:
- name: CustomRequestFilter1
args:
key1: someValue
- name: CustomRequestFilter2
args:
key2: someVvalue
注意:这些默认值实际上是在java中设置的,我是这样写的,没有详细说明class,但问题还是一样。
如何通过环境变量以干净的方式覆盖 key1/key2 的值,而不会弄乱顺序?
我发现的一种方法是使用 spring.cloud.gateway.default-filters[0].args[key1] = "someOtherValue"
,但这种方法需要知道 application.yml 中定义的过滤器的顺序。此外,它看起来像使用这个,第二个 CustomRequestFilter2
过滤器根本没有被调用。
我们如何通过环境变量设置这些嵌套值?
最后,我决定采用 Spring 云网关 SecureHeadersGatewayFilterFactory approach, where they used SecureHeadersProperties 外部属性,即 @ConfigurationProperties
我创建了 2 个过滤器,比如说 CustomFilter1 和 CustomFilter2,它们的配置已设置
spring:
cloud:
gateway:
default-filters:
- name: CustomRequestFilter1
args:
key1: someValue
- name: CustomRequestFilter2
args:
key2: someVvalue
注意:这些默认值实际上是在java中设置的,我是这样写的,没有详细说明class,但问题还是一样。
如何通过环境变量以干净的方式覆盖 key1/key2 的值,而不会弄乱顺序?
我发现的一种方法是使用 spring.cloud.gateway.default-filters[0].args[key1] = "someOtherValue"
,但这种方法需要知道 application.yml 中定义的过滤器的顺序。此外,它看起来像使用这个,第二个 CustomRequestFilter2
过滤器根本没有被调用。
我们如何通过环境变量设置这些嵌套值?
最后,我决定采用 Spring 云网关 SecureHeadersGatewayFilterFactory approach, where they used SecureHeadersProperties 外部属性,即 @ConfigurationProperties