亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中的gateway自定義過濾器詳解

 更新時間:2023年11月17日 11:30:46   作者:小菜雞9527  
這篇文章主要介紹了Java中的gateway自定義過濾器詳解,過濾器是指gateway在路由過程中(A地址路由到B地址)生效進行過濾操作的,所有首先你得先配一個地址路由,本文提供了部分實現(xiàn)代碼,需要的朋友可以參考下

全局過濾器(GloabalFilter)

注意:

過濾器是指gateway在路由過程中(A地址路由到B地址)生效進行過濾操作的,所有首先你得先配一個地址路由。比如我站在這里設(shè)置將//localhost:8000/gateway/* 請求路由到//localhost:8010/user/*,那么下面的兩個樣例過濾器遍對這個過程進行過濾

        - id: user_route
          uri: lb://server-user
          #uri: http://localhost:8010
          predicates:
            - Path=/gateway/**
          filters:
            - RewritePath=/gateway/(?<segment>.*),/user/$\{segment}

開啟gateway的日志,方便后面查看過程

logging:
  level:
    org.springframework.cloud.gateway: DEBUG

前置過濾器

@Component
public class MyHeadFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        System.out.println("123123");
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        return 0;
    }
}

后置過濾器

@Component
public class MyTailFilter implements GlobalFilter, Ordered {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        return chain.filter(exchange)
                .then(Mono.fromRunnable(
                        () -> System.out.println("abcabc")
                ));
    }
    @Override
    public int getOrder() {
        return 0;
    }
}

運行結(jié)果

然后訪問//localhost:8000/gateway/listAll,路由到//localhost:8010/user/listAll成功

控制臺輸出

在這里插入圖片描述

局部過濾器

有兩種方式:

  • 在上面全局模式的基礎(chǔ)上,改為實現(xiàn)gatewayFilter和Ordered接口
  • 繼承AbstractGatewayFilterFactory類(推薦)

局部過濾器實現(xiàn)

public class MyPartGatewayFilterFactory extends AbstractGatewayFilterFactory<MyPartGatewayFilterFactory.Config> {

    private static final Log log = LogFactory.getLog(GatewayFilter.class);
    private static final String NAME = "name";

    public MyPartGatewayFilterFactory() {
        super(Config.class);
    }

    @Override
    public List<String> shortcutFieldOrder() {
        return Arrays.asList(NAME);
    }

    @Override
    public GatewayFilter apply(Config config) {
        return (exchange, chain) -> {
            return chain.filter(exchange).then(
                    Mono.fromRunnable(() -> {
                        StringBuilder sb = new StringBuilder("這是2022年7月25日8點半之后的請求,請求者name(入?yún)ⅲ?);
                        sb.append(config.getName());
                        log.info(sb.toString());
                    })
            );
        };
    }
    public static class Config{
        private String name;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
}

在gateway的啟動類上進行注冊

@Bean
    public MyPartGatewayFilterFactory myGatewayFilterFactory(){
        return new MyPartGatewayFilterFactory();
    }

對應(yīng)的配置文件部分

        - id: my_route
          uri: http://127.0.0.1:8010
          filters:
            - name: MyPart
              args:
                name: yuan
          predicates:
#            - After=2017-01-20T17:42:47.789-07:00[America/Denver]
            - After=2022-07-25T08:30:00.003+08:00[Asia/Shanghai]

運行結(jié)果

訪問//localhost:8000/user/test

8000是我的gateaway運行端口

在這里插入圖片描述

到此這篇關(guān)于Java中的gateway自定義過濾器詳解的文章就介紹到這了,更多相關(guān)gateway自定義過濾器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring cloud gateway 限流的實現(xiàn)與原理

    spring cloud gateway 限流的實現(xiàn)與原理

    這篇文章主要介紹了spring cloud gateway 限流的實現(xiàn)與原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Java Web學(xué)習(xí)之Cookie和Session的深入理解

    Java Web學(xué)習(xí)之Cookie和Session的深入理解

    這篇文章主要給大家介紹了關(guān)于Java Web學(xué)習(xí)之Cookie和Session的相關(guān)資料,需要的朋友可以參考下
    2018-04-04
  • Java 十大排序算法之希爾排序刨析

    Java 十大排序算法之希爾排序刨析

    希爾排序是希爾(Donald Shell)于1959年提出的一種排序算法。希爾排序也是一種插入排序,它是簡單插入排序經(jīng)過改進之后的一個更高效的版本,也稱為縮小增量排序,同時該算法是沖破O(n2)的第一批算法之一。本文會以圖解的方式詳細(xì)介紹希爾排序的基本思想及其代碼實現(xiàn)
    2021-11-11
  • Mybatis注解開發(fā)@Select執(zhí)行參數(shù)和執(zhí)行sql語句的方式(最新詳解)

    Mybatis注解開發(fā)@Select執(zhí)行參數(shù)和執(zhí)行sql語句的方式(最新詳解)

    @Select 是 Mybatis 框架中的一個注解,用于執(zhí)行 SQL 查詢語句,并把查詢結(jié)果映射到指定的 Java 對象中,這篇文章主要介紹了Mybatis注解開發(fā)@Select執(zhí)行參數(shù)和執(zhí)行sql語句的方式,需要的朋友可以參考下
    2023-07-07
  • java獲取時間的方法總結(jié)

    java獲取時間的方法總結(jié)

    以下是對java中獲取時間的幾種方法進行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • Mybatis動態(tài)SQL foreach標(biāo)簽用法實例

    Mybatis動態(tài)SQL foreach標(biāo)簽用法實例

    這篇文章主要介紹了Mybatis動態(tài)SQL foreach標(biāo)簽用法實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • JSqlParse完整介紹

    JSqlParse完整介紹

    JSqlParse是一款很精簡的sql解析工具,本文主要介紹了JSqlParse完整介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • SpringBoot集成企業(yè)微信開發(fā)的實現(xiàn)

    SpringBoot集成企業(yè)微信開發(fā)的實現(xiàn)

    本文將詳細(xì)介紹如何使用?Spring?Boot?集成企業(yè)微信開發(fā),通過企業(yè)微信?API?可以實現(xiàn)企業(yè)內(nèi)部的一些自動化業(yè)務(wù)流程,提高工作效率,感興趣的可以了解一下
    2023-07-07
  • 使用Spring AOP做接口權(quán)限校驗和日志記錄

    使用Spring AOP做接口權(quán)限校驗和日志記錄

    本文介紹了面向切面編程(AOP)的基本概念、應(yīng)用場景及其在Spring中的實現(xiàn)原理,通過AOP,可以方便地在不修改原有代碼的情況下,實現(xiàn)日志記錄、權(quán)限校驗等功能,以學(xué)生身份證號查詢接口為例,展示了如何定義權(quán)限注解、切面類以及權(quán)限驗證服務(wù),感興趣的朋友一起看看吧
    2025-01-01
  • Struts2實現(xiàn)文件上傳功能實例解析

    Struts2實現(xiàn)文件上傳功能實例解析

    這篇文章主要介紹了Struts2實現(xiàn)文件上傳功能實例解析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-01-01

最新評論