过滤器工厂

这一节来探讨如何自定义过滤器工厂。

自定义过滤器工厂

方式1

  • 继承 AbstractGatewayFilterFactory
  • 参考示例:
    org.springframework.cloud.gateway.filter.factory.RequestSizeGatewayFilterFactory
  • 配置形式:
spring:
  cloud:
    gateway:
      routes:
        filters:
          - name: RequestSize
            args: 
              maxSize: 50000

方式2

  • 继承 AbstractNameValueGatewayFilterFactory
  • 参考示例:
    org.springframework.cloud.gateway.filter.factory.AddRequestHeaderGatewayFilterFactory
  • 配置形式:
spring:
  cloud:
    gateway:
      routes:
        filters:
          - AddRequestHeader=S-Header, Bar

核心API

  • exchange.getRequest().mutate().xxx // 修改 request
  • exchange.mutate().xxx // 修改 exchange
  • chain.filter(exchange) // 传递给下一个过滤器处理
  • exchange.getResponse() // 拿到响应

参考文献

BAT架构师带你从零打造微服务项目