尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

spring cloud里面GlobalFilter和HandlerInterceptor的执行顺序

spring cloud里面GlobalFilter和HandlerInterceptor的执行顺序
📅 发布时间:2026/7/8 9:41:12

在Spring Cloud(Gateway)中,GlobalFilter 和 HandlerInterceptor 不存在直接的执行顺序比较,因为它们位于请求链路中完全不同的层级和时间点。

GlobalFilter 在 API网关层 执行,而 HandlerInterceptor 在请求到达后端微服务后,于Spring MVC框架内执行。

⏳ 完整请求链路中的执行顺序
一个请求从客户端到后端服务,其完整的执行顺序如下:

客户端 发起请求

API网关层 (Spring Cloud Gateway)

GlobalFilter (前置逻辑): 按 Order 值从小到大执行。

GatewayFilter (路由过滤器, 前置逻辑): 与 GlobalFilter 合并排序后执行。

路由转发: 请求被转发到目标微服务。

GatewayFilter (后置逻辑): 按 Order 值从大到小执行。

GlobalFilter (后置逻辑): 按 Order 值从大到小执行。

后端微服务 (Spring Boot)

Servlet Filter: 标准的Servlet过滤器。

HandlerInterceptor.preHandle(): 在Controller方法执行之前执行。

Controller / 业务逻辑

HandlerInterceptor.postHandle(): 在Controller方法执行之后,视图渲染之前执行。

HandlerInterceptor.afterCompletion(): 在请求完全结束后执行。

响应 返回给客户端

🎯 GlobalFilter 的执行顺序(网关层)
GlobalFilter 的执行顺序由 Ordered 接口的 getOrder() 方法决定,数值越小,优先级越高。

pre 阶段(请求前): Order 值越小,越先执行。

post 阶段(响应后): Order 值越小,越后执行。

Order值相同时的规则
当多个过滤器的 Order 值相同时:

同为 GlobalFilter: 执行顺序可能取决于类文件的加载顺序,不确定。

GlobalFilter vs GatewayFilter: GlobalFilter 会优先执行。

🎯 HandlerInterceptor 的执行顺序(微服务层)
HandlerInterceptor 的执行顺序由注册时的顺序决定。

preHandle(): 按照注册的顺序执行。

postHandle() 和 afterCompletion(): 按照注册的逆序执行。

💎 总结
简单来说,GlobalFilter 在网关层面拦截,HandlerInterceptor 在微服务内部拦截。理解它们在整个请求链路中的不同位置,有助于你更准确地设计全局性的鉴权、日志或路由策略。

相关新闻

  • 写给软件测试新人和转行测试的同学
  • LV3296与PIC18LF4550嵌入式条码识别方案解析
  • A3910与PIC18LF26K42在电机控制中的高效应用

最新新闻

  • 如何在Flash Player停用后继续畅玩经典Flash游戏?
  • 小红书内容采集终极指南:XHS-Downloader 完整使用教程与实战技巧
  • Java开发环境搭建实战:JDK多版本配置与IDE集成避坑指南
  • Wiki + Graph + RAG 知识库建设笔记
  • 5分钟掌握Unity资源提取:UABEA终极使用指南
  • 16-ONEP系规图表版生成样例V3.0(重点示例)

日新闻

  • PROPKA 3深度解析:蛋白质pKa预测的实战指南与算法原理
  • 微信小程序 globalData 监听:基于 Object.defineProperty 的 3 种实现方案对比
  • MySQL 8.0 数据清洗实战:3类异常值识别与 UPDATE/DELETE 批量处理

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号