欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

自定義指定路由上的Gateway過(guò)濾器工廠詳解

 更新時(shí)間:2023年09月13日 08:45:41   作者:雪峰.貴  
這篇文章主要介紹了自定義指定路由上的Gateway過(guò)濾器工廠詳解,gateway是Spring?Cloud中的一個(gè)網(wǎng)關(guān)服務(wù),gateway可以使用服務(wù)注冊(cè)中心進(jìn)行服務(wù)發(fā)現(xiàn)和負(fù)載均衡,同時(shí)還可以配置斷言來(lái)判斷請(qǐng)求是否符合路由規(guī)則,需要的朋友可以參考下

前言

核心API

在這里插入圖片描述

一、需求

攔截請(qǐng)求,打印日志

1.加依賴(lài)

<dependency>
   <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

2.創(chuàng)建自定義過(guò)濾器 工廠

import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.factory.AbstractNameValueGatewayFilterFactory;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
@Slf4j
@Component
//自定義過(guò)濾器工廠的名字要以GatewayFilterFactory結(jié)尾,只需在前面加個(gè)前綴,并把前綴配到配置文件里
public class PreLogGatewayFilterFactory extends AbstractNameValueGatewayFilterFactory {
    @Override
    public GatewayFilter apply(NameValueConfig config) {
        return ((exchange, chain) -> {
            //配置上寫(xiě)的參數(shù)用config.getName(),config.getValue()來(lái)拿
            //config.getName()拿到的是a,config.getValue()拿到的是b
            log.info("請(qǐng)求進(jìn)來(lái)了,參數(shù):{},{}",config.getName(),config.getValue());
            //Request.mutate后可以修改請(qǐng)求,需改后build()
            ServerHttpRequest modifiedRequest = exchange.getRequest().mutate().build();
            //把修改后的Request給Exchange
            ServerWebExchange modifiedExchange = exchange.mutate().request(modifiedRequest).build();
            //繼續(xù)下一個(gè)過(guò)濾器
            return chain.filter(modifiedExchange);
        });
    }
}

3.加配置

spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    gateway:
      discovery:
        locator:
          enabled: true #讓gateway在nacos上找微服務(wù)
      routes:
        - id: before_route
          uri: lb://user-center #lb :nacos上的微服務(wù)
          predicates:
            - MyTimeBetween=上午9:00,下午11:00 #指定一個(gè)路由規(guī)則,這里的MyTimeBetween是自定義的,可以使用spring-cloud-gateway自帶的。
          filters:
            - PreLog=a,b #寫(xiě)前綴即可,后面是傳給工廠的參數(shù)

4.驗(yàn)證

通過(guò)gateway訪問(wèn)微服務(wù),前提是請(qǐng)求路徑需要滿(mǎn)足routes的謂詞,才會(huì)走到這個(gè)工廠里。

http://localhost:8040/users/1

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

相關(guān)文章

  • SpringBoot靜態(tài)方法調(diào)用Spring容器bean的三種解決方案

    SpringBoot靜態(tài)方法調(diào)用Spring容器bean的三種解決方案

    在SpringBoot中靜態(tài)方法調(diào)用Spring容器bean時(shí)出現(xiàn)的null值問(wèn)題,本文就來(lái)介紹一下SpringBoot靜態(tài)方法調(diào)用Spring容器bean的三種解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • java LeetCode題解KMP算法示例

    java LeetCode題解KMP算法示例

    這篇文章主要為大家介紹了java LeetCode題解KMP算法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 解決springboot application.properties server.port配置問(wèn)題

    解決springboot application.properties server.port配置問(wèn)題

    這篇文章主要介紹了解決springboot application.properties server.port配置問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 基于Springboot+Mybatis對(duì)數(shù)據(jù)訪問(wèn)層進(jìn)行單元測(cè)試的方式分享

    基于Springboot+Mybatis對(duì)數(shù)據(jù)訪問(wèn)層進(jìn)行單元測(cè)試的方式分享

    本文將介紹一種快高效、可復(fù)用的解決測(cè)試方案——對(duì)數(shù)據(jù)訪問(wèn)層做單元測(cè)試,文章通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-07-07
  • JAVA解析XML字符串簡(jiǎn)單方法代碼案例

    JAVA解析XML字符串簡(jiǎn)單方法代碼案例

    這篇文章主要介紹了JAVA解析XML字符串簡(jiǎn)單方法代碼案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Spring Boot攔截器Interceptor與過(guò)濾器Filter詳細(xì)教程(示例詳解)

    Spring Boot攔截器Interceptor與過(guò)濾器Filter詳細(xì)教程(示例詳解)

    本文詳細(xì)介紹了SpringBoot中的攔截器(Interceptor)和過(guò)濾器(Filter),包括它們的定義、作用范圍、使用場(chǎng)景、實(shí)現(xiàn)步驟、執(zhí)行順序、常見(jiàn)問(wèn)題及解決方案,感興趣的朋友跟隨小編一起看看吧
    2025-03-03
  • 解決jpa查詢(xún)語(yǔ)句自動(dòng)變成了update的問(wèn)題

    解決jpa查詢(xún)語(yǔ)句自動(dòng)變成了update的問(wèn)題

    這篇文章主要介紹了解決jpa查詢(xún)語(yǔ)句自動(dòng)變成了update的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring整合WebSocket應(yīng)用示例(上)

    Spring整合WebSocket應(yīng)用示例(上)

    以下教程是小編在參與開(kāi)發(fā)公司的一個(gè)crm系統(tǒng),整理些相關(guān)資料,在該系統(tǒng)中有很多消息推送功能,在其中用到了websocket技術(shù)。下面小編整理分享到腳本之家平臺(tái)供大家參考
    2016-04-04
  • Java類(lèi)加載初始化的過(guò)程及順序

    Java類(lèi)加載初始化的過(guò)程及順序

    今天小編就為大家分享一篇關(guān)于Java類(lèi)加載初始化的過(guò)程及順序,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • SpringBoot在項(xiàng)目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的方法

    SpringBoot在項(xiàng)目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的方法

    這篇文章主要給大家介紹了SpringBoot在項(xiàng)目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的兩種方法,實(shí)現(xiàn)DisposableBean接口和使用@PreDestroy注解,文中有詳細(xì)的代碼講解,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-12-12

最新評(píng)論