说明: 创建了两个Filter,分别是

PreFilter

public class PreFilter extends ZuulFilter {public PreFilter() {super();}@Overridepublic String filterType() {return FilterConstants.PRE_TYPE;}@Overridepublic int filterOrder() {return 0;}@Overridepublic boolean shouldFilter() {
//        return true;//跨域设置RequestContext ctx = RequestContext.getCurrentContext();HttpServletRequest request = ctx.getRequest();//只过滤OPTIONS 请求if(request.getMethod().equals(RequestMethod.OPTIONS.name())){return true;}return false;}@Overridepublic Object run() {RequestContext ctx = RequestContext.getCurrentContext();HttpServletRequest request = ctx.getRequest();HttpServletResponse response = ctx.getResponse();response.setHeader("Access-Control-Allow-Origin",request.getHeader("Origin"));response.setHeader("Access-Control-Allow-Credentials","true");response.setHeader("Access-Control-Allow-Headers","authorization, content-type");response.setHeader("Access-Control-Allow-Methods","POST,GET");String requestUrl = request.getRequestURL().toString();String requestUri = request.getRequestURI();String zuul = requestUrl.substring(0,requestUrl.indexOf(requestUri)); // zuul根路径ctx.addZuulRequestHeader("zuul", zuul);//不再路由ctx.setSendZuulResponse(false);ctx.setResponseStatusCode(200);return null;}}

PostFilter

@Component
public class PostFilter extends ZuulFilter {protected static final String SEND_ERROR_FILTER_RAN = "sendErrorFilter.ran";@Overridepublic String filterType() {return FilterConstants.POST_TYPE;}@Overridepublic int filterOrder() {return -1;}@Overridepublic boolean shouldFilter() {return true;}@Overridepublic Object run() {return null;}
}

我测试了几种情况,发现结果如下

1  按照filterType决定顺序

Pre 优先 Post执行,此时filterOrder没有作用。

2 filterType相同

filterOrder有作用,数字越小,越先执行。(负数也是这个规则,0和-1的话,-1先执行)

3 相同filterType,相同filterOrder,都执行,执行顺序不清楚。

prefilter先执行了,post后执行了。

感觉不像是按照过滤请名称排序的样子。

转载于:https://www.cnblogs.com/hanjun0612/p/10782987.html

ZuulFilter 执行顺序相关推荐

  1. SpringCloud配置文件 application.yml和 bootstrap.yml区别,执行顺序

    说在前面 SpringBoot默认支持properties和YAML两种格式的配置文件.前者格式简单,但是只支持键值对.如果需要表达列表,最好使用YAML格式.SpringBoot支持自动加载约定名称 ...

  2. spring 基于XML的申明式AspectJ通知的执行顺序

    spring 基于XML的申明式AspectJ通知的执行顺序 关于各种通知的执行顺序,结论:与配置文件中的申明顺序有关 1. XML文件配置说明 图片来源:<Java EE企业级应用开发教程&g ...

  3. MySQL 学习笔记(17)— SQL 执行顺序

    以查询语句为例,我们看下面的查询语句: (6)SELECT [DISTINCT | ALL] col1, col2, agg_func(col3) AS alias (1) FROM t1 JOIN ...

  4. ASP.NET 2.0中Page事件的执行顺序

    Page 执行中将按照如下顺序激活事件: Page.PreInit Page.Init Page.InitComplite Page.PreLoad Page.Load Page.LoadComple ...

  5. 前端碎碎念 之 nextTick, setTimeout 以及 setImmediate 三者的执行顺序

    『前端碎碎念』系列会记录我平时看书或者看文章遇到的问题,一般都是比较基础但是容易遗忘的知识点,你也可能会在面试中碰到. 我会查阅一些资料并可能加上自己的理解,来记录这些问题.更多文章请前往我的个人博客 ...

  6. java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

    2019独角兽企业重金招聘Python工程师标准>>> /* * 几大原则 * 一.静态成员变量(Static) * 1.静态成员变量为类变量,所有对象共享同一内存空间 * 2.静态 ...

  7. 谈谈C#中类成员的执行顺序.

    今天我们来谈谈C#中子类和父类中静态成员以及构造函数的执行顺序,这个地方向来是初学C#的人比较迷惑的地方,也是各大公司最喜欢拿来出面试题的地方. 下面我们分情况来分析. 1. 普通构造函数和静态构造函 ...

  8. java注解的执行顺序_深入理解Spring的@Order注解和Ordered接口

    前言 Spring的@Order注解或者Ordered接口大家都知道是控制顺序的,那么它们到底是控制什么顺序的?是控制Bean的注入顺序,还是Bean的实例化顺序,还是Bean的执行顺序呢?那么我们先 ...

  9. Jmeter组件执行顺序与作用域

    一.Jmeter重要组件: 1)配置元件---Config Element: 用于初始化默认值和变量,以便后续采样器使用.配置元件大其作用域的初始阶段处理,配置元件仅对其所在的测试树分支有效,如,在同 ...

最新文章

  1. python 正则表达式方法_Python正则表达式一: 基本使用方法
  2. windows 切换 默认 jdk 版本
  3. mybatis mysql 配置文件路径_从零搭建SpringBoot+MyBatis+MySQL工程
  4. JPM Coin三部曲 (上) :深入理解摩根幣的運作
  5. Error running app: Default Activity Not Found
  6. 数据仓库详细介绍(九.数据质量)流程与工具
  7. 使用Python将word转换为pdf
  8. 数字谐音记忆编码连连看网页应用
  9. UOM Convertion Rate API
  10. 高频电源模块FB230D10NZ-D浮充模块充电机
  11. php导出word文件(二)
  12. 3D仿真教程:ThingJS全套环境搭建方案
  13. gitlab漏洞导致服务器被植入挖矿程序
  14. EasyNVS摄像机公网全终端无插件网页摄像机直播管理服务运行出现“请求服务不存在或已停止”
  15. Java-List数组排序的使用—Collections.sort()
  16. Verilog实现1位全加器及输出逻辑解析
  17. 13 蜡烛图与移动平均线
  18. HTML5笔记+案例
  19. 我给自己的新年礼物—书籍——2014002
  20. python中的pip更新详细方法

热门文章

  1. 公司开除员工怎么赔偿标准
  2. 半夜电脑屏幕亮起终于解决了! window10 睡眠后一段时间自动唤起的解决办法
  3. 论文写作——4 摘要撰写基本原则(以小柚子MIHI33版摘要为例)
  4. 根据Map的value值进行排序-map排序
  5. 从0到1学SpringCloud——08 通过fegin实现微服务之间请求调用
  6. 怎么做表情包微信gif?表情包制作软件分享!​
  7. 分享业余时间开发的一个影视采集及管理系统
  8. android jni开发crash定位
  9. 云耀云服务器性能怎么样,华为云耀云服务器性能如何 – 附详细测评教程
  10. anaconda安装手写字符识别所需包