springcloud gateway 配置


一、标题:
  springcloud gateway 配置
二、描述:
  本篇将介绍springcloud gateway:如何自定义predicate,自定义filter
三、官网文档:
  springcloud gateway:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.0.RC2/reference/html/

四、自定义predicate
  1、凡是自定义predicate可以继承AbstractRoutePredicateFactory类,也可以通过可以实现RoutePredicateFactory接口;
  2、命名一般为功能名称+RoutePredicateFactory;如定义token参数拦截的predicate,TokenRoutePredicateFactory;
  3、自定义类内部一般需要实现apply接口,创建自定义存参对象;如定义TokenRoutePredicateFactory的存参对象为TokenConfig;
  4、在配置文件内引入有两种方式:(都是在predicates属性下加入,以TokenRoutePredicateFactory为例)
  方式一:
    - Token=value1,value2
  方式二:
    - name: Token
      args:
      key: value

                     key2: value2
  注意:
    1、如果自定义predicate类不包含RoutePredicateFactory后缀需要将整个类名简称代替到上面的Token位置
    2、方式一中:value1是第一个参数的参数值,value2是第二个参数的参数值;方式二中:key为属性名称,value为属性值
五、自定义filter
  全局filter:
    1、凡是自定义全局Filter可以实现GlobalFilter接口;
    2、命名一般为功能名称+GlobalFilter;如定义token参数过滤的GlobalFilter,TokenGlobalFilter;
    3、自定义类内部一般需要实现filter接口;
    4、过滤分前置过滤和后置过滤,前置指的是请求前过滤在filter方法的第一层定义,后置指的是请求后过滤在filter方法得第二层定义
    5、可以实现Order接口或者在类上添加@Order注解指定运行顺序

  注意:1、不需要在配置文件引入,但需要加入Spring ioc容器内
  局部filter:
    1、凡是自定义局部Filter可以继承AbstractGatewayFilterFactory类,也可以通过可以实现GatewayFilterFactory接口;
    2、命名一般为功能名称+GatewayFilterFactory;如定义token参数过滤的filter,TokenGatewayFilterFactory;
    3、自定义类内部一般需要实现apply接口,创建自定义存参对象;如定义TokenGatewayFilterFactory的存参对象为TokenConfig;
    4、过滤分前置过滤和后置过滤,前置指的是请求前过滤在filter方法的第一层定义,后置指的是请求后过滤在filter方法得第二层定义
    5、在配置文件内引入有两种方式:(都是在filters属性下加入,以TokenGatewayFilterFactory为例)
    方式一:
      - Token=value1,value2
    方式二:
      - name: Token
        args:
        key: value
        key2: value2

  注意:
    1、如果自定义局部Filter类不包含GatewayFilterFactory后缀需要将整个类名简称代替到上面的Token位置
    2、方式一中:value1是第一个参数的参数值,value2是第二个参数的参数值;方式二中:key为属性名称,value为属性值
六、demo地址:https://gitee.com/lswater/springcloud-gateway-demo


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM