过滤器执行顺序

请求进入网关会碰到三类过滤器:当前路由的过滤器、DefaultFilter、GlobalFilter

请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器:

排序的规则是什么呢?

  • 每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前

  • GlobalFilter通过实现Ordered接口,或者添加@Order注解来指定order值,由我们自己指定

  • 路由过滤器和defaultFilter的order由Spring指定,默认是按照声明顺序从1递增。

  • 当过滤器的order值一样时,会按照 defaultFilter > 路由过滤器 > GlobalFilter的顺序执行。

详细内容,可以查看源码:

org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator#getFilters()方法是先加载defaultFilters,然后再加载某个route的filters,然后合并。

org.springframework.cloud.gateway.handler.FilteringWebHandler#handle()方法会加载全局过滤器,与前面的过滤器合并后根据order排序,组织过滤器链

Gateway网关-过滤器链执行顺序相关推荐

  1. java web 启动顺序_JavaWeb开发Servlet过滤器链执行顺序详解

    ***第一份手记*** 下午时间观看老师讲的视频,自己动手实践练习得出的结论,讲其分享出来给大家,不喜勿喷,有那里说的不对讲得不好还请大家一一指出,谢谢! 过滤器链的执行顺序是服务器按照web.xml ...

  2. java filter 调用链_JavaWeb开发Servlet过滤器链执行顺序详解

    ***第一份手记*** 下午时间观看老师讲的视频,自己动手实践练习得出的结论,讲其分享出来给大家,不喜勿喷,有那里说的不对讲得不好还请大家一一指出,谢谢! 过滤器链的执行顺序是服务器按照web.xml ...

  3. Filter过滤器链执行顺序

    Web应用允许多个过滤器来过滤页面请求--联想现实生活中的例子是最好理解的啦!比如:为了获得更加干净的水,可能需要多个过滤器来进行过滤. 这个时候就分为两种情况了 1:多个过滤器过滤的URL不同,那么 ...

  4. java过滤器的执行顺序_Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)...

    Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...

  5. 微服务中自定义gateway网关过滤器

    在学习spring Cloud时,gateway作为服务统一入口,经常需要对来历不明的请求做一些筛选. 官方提供了一些常用的过滤器 filters:- AddRequestHeader=name,zs ...

  6. FilterAttribute过滤器的 执行顺序

    这种情况默认 先执行 ActionFilter2 当使用Order自定义执行顺序时,先执行Order值小的 过滤器,Order值没有设置时默认为-1 不论位置不论Order值,以下过滤器优先级    ...

  7. 控制过滤器Filter执行顺序

    方式一:web.xml中的filter-mapping位置 通过web.xml中控制filter-mapping的位置来控制的,放在上面的会比放在下面的先执行,如下"用户登录检查过滤器&qu ...

  8. java过滤器原理,拦截器,过滤器,监听器 区别及执行顺序

    本文引用该作者(花开半夏)著作内容,觉得写的很好,记录一下便于回看防止失踪,更多详情请查看原作者. 同时还搜罗了其他便于理解的博文感兴趣的可以看看促进理解 拦截器,过滤器,监听器执行顺序(被拦截个人过 ...

  9. filter过滤器和interceptor拦截器的区别和执行顺序

    1.过滤器 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上.它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候 ...

最新文章

  1. linux终端中运行网银盾,Linux下使用Virtualbox安装 Windows 7 操作网银攻略
  2. Scrapy框架模拟Github网站登陆
  3. RN中布局样式的写法
  4. ab url 带参数 测试
  5. java多态子父类的构造器、成员变量、方法的调用关系
  6. c语言转职,魔兽地图:3C转职版5.0C
  7. 动态规划之01背包问题和三角形问题
  8. qq浏览器网页翻译_在线英文翻译、文档翻译,这几款翻译工具你值得拥有
  9. 平面设计师学习指南,平面设计都要学什么
  10. 【大学物理】第一章:质点运动学
  11. html5 keygen 作用,html keygen标签怎么用
  12. 小Q书桌支持WIN10完美运行 关于win10不兼容小q书桌
  13. 以太坊就是公链之王,不接受反驳
  14. 鼠标到达a标签时变成手型
  15. Android中Fragment的分屏显示处理横竖屏显示
  16. 查找微信公众号服务器,墨涩网 - 免插件实现微信公众号搜索连接wordpress网站文章——墨涩网...
  17. RK3399支持5G-WiFi热点
  18. 等保(公安部82号令)
  19. Machine learning strategies for systems with invariance properties( 具有不变性系统的机器学习策略 )2016年Julia Ling
  20. 怎么让上下两排对齐_如何快速调整WORD里上下两行名字对齐 - 卡饭网

热门文章

  1. | dp-the Treasure Hunter
  2. shell编程基础之根据输入进行相应的操作
  3. shell中执行hive命令错误:delimited by end-of-file (wanted `EOF')
  4. sql server数据库查询超时报错
  5. jquery的2.0.3版本源码系列(2):21行-94行定义了一些变量和函数 jQuery=function(){}
  6. 12-16php测试题
  7. 【新东方老师推荐】老师推荐--听说——这是全球最值得听的、最好听的100首英文歌...
  8. 现代人,特别需要蒸之一
  9. python闭包、装饰器
  10. 删除有序链表中的重复结点