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

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

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

前言

核心API

在這里插入圖片描述

一、需求

攔截請求,打印日志

1.加依賴

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

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

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
//自定義過濾器工廠的名字要以GatewayFilterFactory結(jié)尾,只需在前面加個前綴,并把前綴配到配置文件里
public class PreLogGatewayFilterFactory extends AbstractNameValueGatewayFilterFactory {
    @Override
    public GatewayFilter apply(NameValueConfig config) {
        return ((exchange, chain) -> {
            //配置上寫的參數(shù)用config.getName(),config.getValue()來拿
            //config.getName()拿到的是a,config.getValue()拿到的是b
            log.info("請求進來了,參數(shù):{},{}",config.getName(),config.getValue());
            //Request.mutate后可以修改請求,需改后build()
            ServerHttpRequest modifiedRequest = exchange.getRequest().mutate().build();
            //把修改后的Request給Exchange
            ServerWebExchange modifiedExchange = exchange.mutate().request(modifiedRequest).build();
            //繼續(xù)下一個過濾器
            return chain.filter(modifiedExchange);
        });
    }
}

3.加配置

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

4.驗證

通過gateway訪問微服務,前提是請求路徑需要滿足routes的謂詞,才會走到這個工廠里。

http://localhost:8040/users/1

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

相關(guān)文章

最新評論

安徽省| 江孜县| 碌曲县| 安仁县| 深州市| 西乌| 五大连池市| 常山县| 望都县| 巍山| 阿勒泰市| 滕州市| 始兴县| 合肥市| 万山特区| 波密县| 洪雅县| 乾安县| 白玉县| 玉树县| 青神县| 从化市| 鸡西市| 衡山县| 曲周县| 青神县| 长治市| 德州市| 射阳县| 隆化县| 安福县| 施秉县| 壤塘县| 枣强县| 襄垣县| 娱乐| 永仁县| 西乡县| 中宁县| 灵璧县| 德化县|