首页 > 其他分享 >Spring Cloud --- Gateway自定义全局过滤器

Spring Cloud --- Gateway自定义全局过滤器

时间:2024-10-23 22:19:15浏览次数:9  
标签:info getURI log 自定义 exchange Spring 接口 --- public

Gateway自定义全局过滤器

介绍

全局过滤器对所有路由生效。

新建类MyGlobalFilter并实现GlobalFilter,Ordered两个接口

自定义接口调用耗时统计的全局过滤器

@Component
@Slf4j
public class MyGlobalFilter implements GlobalFilter, Ordered {

    public static final String BEGIN_VISIT_TIME="begin_visit_time";//开始调用方法的时间

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //1 先记录下访问接口的开始时间
        exchange.getAttributes().put(BEGIN_VISIT_TIME,System.currentTimeMillis());
        return chain.filter(exchange).then(Mono.fromRunnable(()->{
            Long beginVisitTime = exchange.getAttribute(BEGIN_VISIT_TIME);
            if (Objects.nonNull(beginVisitTime)){
                log.info("访问接口主机:"+exchange.getRequest().getURI().getHost());
                log.info("访问接口端口:"+exchange.getRequest().getURI().getPort());
                log.info("访问接口URL:"+exchange.getRequest().getURI().getPath());
                log.info("访问接口URL后面参数:"+exchange.getRequest().getURI().getRawQuery());
                log.info("访问接口时长:"+(System.currentTimeMillis()-beginVisitTime)+"毫秒");
                log.info("================分割线================");
                System.out.println();
            }
        }));
    }

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

标签:info,getURI,log,自定义,exchange,Spring,接口,---,public
From: https://blog.csdn.net/gc666888/article/details/143110486

相关文章

  • 初识Maven2.2-maven的第一个项目
    简介:不通过idea编程工具。而是手动通过创建文件夹目录,来创建Maven的第一个项目用cmd命令窗口来进行clean、compile、test、install等操作前提:配置Maven的环境变量注意:下载Maven时,最好是下载到D盘的根目录下。路径越简单越好。不要带中文!跟配置jdk一样。要写一......
  • 行为设计模式 -观察者模式- JAVA
    责任链设计模式一.简介二.案例2.1抽象处理者(Handler)角色2.2具体处理者(ConcreteHandler)角色2.3测试三.结论3.1优缺点3.2示例3.3要点前言这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。作者:神的孩子都在歌唱一.简介......
  • 青训营 X 豆包MarsCode 技术训练营--小C的外卖超时判断
    题目小C点了一个外卖,并且急切地等待着骑手的送达。她想知道她的外卖是否超时了。已知小C在时刻t1点了外卖,外卖平台上显示的预计送达时间为t2,而实际送达时间为t3。需要判断外卖是否超时。如果外卖超时,则输出“Yes”;否则输出“No”。实际送达时间与预计送达时间在2......
  • stm32入门教程--UART协议详解
    目录简介UART串口协议串行通信并行通信串行通信与并行通信的区别单工通信半双工全双工同步和异步的区别UART帧结构简介STM32是意法半导体公司推出的一款32位ARMCortex-M系列微控制器。UART、SPI和I2C是STM32中常用的串行通信协议。UART(通用异步收发器):UART是一......
  • UVM中Seq-Seqr-Drv之间的通信
    Wediscussedsequece_item,sequence,sequencer,anddriverindependently.Inthissection,wewilldiscusshowtheytalkwitheachotherandprovidesequenceitemsfromsequencetodriverviathesequencer.Beforeyoustartreadingthissection,makes......
  • 渗透测试-安全见闻(5)
    声明学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。目录X量子物理学及量子计算一、学习方向量子物理学基础量子计算原理与技术传统网络安全知识量子......
  • 渗透测试-信息收集
    声明学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。目录X一、Whois信息1.思路2.工具3.社工库二、搜索1.Google、bing、baidu三、Github四、搜索引......
  • 【数据结构】-数组
    数组特点:数组的地址连续,可以通过下标获取数据。1.数组扩容步骤:$1.创建一个比原来数组更长的新数组$2.让原来数组当中的数据依次复制到新数组当中$3.让arr指向新数组,原数组空间释放  2.数组插入2.1最后位置插入$1.判断数组当中有没有位置,用size记录当......
  • ctfshow-pwn-前置基础
    pwn13按照题目提示的信息,用gcc命令生成可执行文件,再运行即可得到flagpwn14题目提示:阅读以下源码,给定key为”CTFshow”,编译运行即可获得flag,那么我们直接看源代码开始有一个文件是否存在的检查,如果当前目录下不存在名为"key"的文件就会报错接下去就是通过循环将fp的值(也就......
  • 20222422 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    一、实验内容1、方法对后门实验中的msf编码器进行进一步的探索使用,使用msfvenom指令生成如jar之类的文件,从而尝试达到免杀的目的;通过Veil等工具对目标程序进行加壳或者其他操作来实现免杀;使用C+ShellCode编程实现免杀;2、应用通过组合应用各种技术尽可能地实现恶意代码免杀......