最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • JDK12的新特性之teeing collectors

    JDK12的新特性之teeing collectors

    這篇文章主要介紹了JDK12的新特性之teeing collectors的相關(guān)資料,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • java中ssh2執(zhí)行多條命令的四種方法

    java中ssh2執(zhí)行多條命令的四種方法

    本文主要介紹了java中ssh2執(zhí)行多條命令的四種方法,包括分號分隔、管道分隔、EOF塊、腳本調(diào)用,可確保環(huán)境配置生效,提升操作效率,具有一定的參考價值,感興趣的可以了解一下
    2025-09-09
  • JDBC中Fetchsize的實現(xiàn)

    JDBC中Fetchsize的實現(xiàn)

    fetchsize是指在執(zhí)行數(shù)據(jù)庫查詢時,每次從數(shù)據(jù)庫中獲取的記錄條數(shù),它對內(nèi)存使用和網(wǎng)絡(luò)傳輸效率有重要影響,在MyBatis中,可以通過全局設(shè)置或語句級別設(shè)置fetchsize,來控制查詢操作的內(nèi)存使用和提升性能,合理的fetchsize設(shè)置能有效減少網(wǎng)絡(luò)往返次數(shù)和防止內(nèi)存溢出
    2024-09-09
  • Spring基于注解的緩存聲明深入探究

    Spring基于注解的緩存聲明深入探究

    spring boot對緩存支持非常靈活,我們可以使用默認(rèn)的EhCache,也可以整合第三方的框架,只需配置即可,下面這篇文章主要給大家介紹了關(guān)于SpringBoot學(xué)習(xí)之基于注解緩存的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Java引用傳遞和值傳遞棧內(nèi)存與堆內(nèi)存的指向操作

    Java引用傳遞和值傳遞棧內(nèi)存與堆內(nèi)存的指向操作

    這篇文章主要介紹了Java引用傳遞和值傳遞棧內(nèi)存與堆內(nèi)存的指向操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java滑動窗口算法題目練習(xí)(附詳細圖文及代碼)

    Java滑動窗口算法題目練習(xí)(附詳細圖文及代碼)

    在數(shù)據(jù)處理和算法中,滑動窗口是一種常見的技術(shù),用于解決一些數(shù)組或字符串相關(guān)的問題,這篇文章主要介紹了Java滑動窗口算法題目練習(xí)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-10-10
  • java虛擬機學(xué)習(xí)高級篇

    java虛擬機學(xué)習(xí)高級篇

    在本篇文章里小編給大家整理了關(guān)于java虛擬機學(xué)習(xí)高級篇的相關(guān)內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)參考下。
    2019-06-06
  • Java中var的作用局部變量類型推斷關(guān)鍵字詳解

    Java中var的作用局部變量類型推斷關(guān)鍵字詳解

    var是Java 10引入的局部變量類型推斷關(guān)鍵字,簡化變量聲明語法,不改變強類型特性,編譯時推斷類型,使用規(guī)則嚴(yán)格,適用于局部變量且立即初始化,適用于復(fù)雜泛型、循環(huán)變量和臨時局部變量,本文給大家介紹Java中var的作用局部變量類型推斷關(guān)鍵字,感興趣的朋友一起看看吧
    2025-11-11
  • java中PriorityBlockingQueue的入隊知識點總結(jié)

    java中PriorityBlockingQueue的入隊知識點總結(jié)

    在本篇文章里小編給大家整理一篇關(guān)于java中PriorityBlockingQueue的入隊知識點總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Java過濾器Filter詳解

    Java過濾器Filter詳解

    這篇文章主要介紹了java過濾器中Filter,發(fā)送請求時,如果有不符合的信息將會被filter進行攔截,如果符合則會進行放行。如果感興趣可以來學(xué)習(xí)一下
    2021-08-08

最新評論

高雄县| 青田县| 从化市| 宁津县| 都安| 永康市| 凤冈县| 广德县| 太仓市| 芜湖县| 乳源| 江都市| 乐亭县| 宁远县| 饶平县| 巴彦淖尔市| 武陟县| 乐亭县| 枝江市| 通化县| 台安县| 桐梓县| 新兴县| 长治市| 龙山县| 会宁县| 曲水县| 满洲里市| 新昌县| 公安县| 玉溪市| 嘉义市| 左贡县| 富民县| 炉霍县| 万州区| 罗甸县| 弥渡县| 宝坻区| 边坝县| 荆门市|