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