简介:Spring Cloud Gateway中的GlobalFilter是一个全局过滤器,具有与GatewayFilter相同的签名。本文将深入解析GlobalFilter的作用和生命周期,以及如何实现横切与应用无关的需求。
在Spring Cloud Gateway中,过滤器是实现横切关注点的重要组件,用于拦截并链式处理Web请求。根据作用范围,过滤器可以分为网关过滤器和全局过滤器。本文将重点探讨Spring Cloud Gateway中的GlobalFilter,它是一个全局过滤器,具有与GatewayFilter相同的签名。
一、概述
GlobalFilter是Spring Cloud Gateway中一个非常重要的全局过滤器。与GatewayFilter不同的是,GlobalFilter有条件地应用于所有路由。这意味着无论请求匹配哪个路由,GlobalFilter的所有实例都会被添加到过滤器链中。
二、组合式全局过滤器和网关过滤器排序
当请求与路由匹配时,GlobalFilter的所有实例和GatewayFilter的所有路由特定实例会被添加到过滤器链中。这个组合过滤器链由org.springframework.core.Ordered接口排序。通过实现getOrder()方法,可以设置该接口的值,值越小越先执行。由于Spring Cloud Gateway区分了过滤器逻辑执行的“pre”和“post”阶段,优先级最高的过滤器是“pre”阶段的第一个,“post”的最后一个。
三、GlobalFilter的作用和生命周期