Spring Cloud Gateway 断言(Predicate)详解:精准匹配请求的核心机制
Spring Cloud Gateway 的断言(Predicate)是路由匹配的核心,它通过匹配 HTTP 请求的各种属性(如路径、方法、头信息、时间等),决定是否将请求转发到目标服务。Gateway 内置了多种断言工厂,满足不同场景的路由匹配需求。
断言的本质
断言(Predicate)本质是请求匹配规则,基于 Java 8 的Predicate函数式接口实现。当请求到达网关时,Gateway 会依次执行路由中定义的断言:
- 若所有断言均返回
true,则请求匹配该路由,执行转发; - 若任一断言返回
false,则跳过该路由,继续匹配其他路由。
断言的配置方式有两种:
- 简短配置:
- 断言名=参数1,参数2(适合简单场景); - 全面配置:通过
name和args显式指定参数(适合复杂场景)。
示例(Cookie 断言的两种配置):