Spring Cloud(十四):Gateway-Predicate的使用

1. Predicate的使用

Spring Cloud Gateway将路由匹配作为Spring WebFlux HandlerMapping基础架构的一部分。

Spring Cloud Gateway包括许多内置的Route Predicate工厂。所有这些Predicate都与HTTP请求的不同属性匹配。多个RoutePredicate厂可以进行组合

Spring Cloud Gateway创建Route对象时,使用RoutePredicateFactory创建Predicate对象,Predicate 对象可以赋值给Route。Spring Cloud Gateway包含许多内置的Route Predicate Factories.

所有这些谓词都匹配HTTP请求的不同属性。多种谓词工厂可以组合,并通过逻辑and。

1.1 常用的Route Predicate

在这里插入图片描述

1.1.1 After Route Predicate

after路由谓词工厂接受一个参数,一个datetime。此谓词匹配发生在指定日期时间之后的请求。

yml:
在这里插入图片描述
可以正常访问,
在这里插入图片描述

当修改时间为"明天“
在这里插入图片描述

1.1.2 Before Route Predicate

before route谓词工厂接受一个参数,即datetime。此谓词匹配发生在指定日期时间之前的请求。

同上,只有请求时间在指定日期之前可访问。
在这里插入图片描述

1.1.3 Between Route Predicate Factory

同上:请求的时间需要在指定的两个时间段内

路由之间的谓词工厂接受两个参数,datetime1和datetime2。此谓词匹配发生在datetime1之后和datetime2之前的请求。datetime2参数必须位于datetime1之后。
在这里插入图片描述

1.1.4 Cookie Route Predicate Factory

cookie路由谓词工厂接受两个参数,cookie名称和一个正则表达式。此谓词匹配具有给定名称且其值与正则表达式匹配的cookie。

yml:
在这里插入图片描述

get请求

curl http://localhost:9527/payment/lb --cookie "username=zhangl”
1.1.5 Header Route Predicate Factory

在这里插入图片描述

头路由谓词工厂接受两个参数,头名称和一个正则表达式。此谓词与具有给定名称的头匹配,该头的值与正则表达式匹配。

curl http://localhost:9527/payment/lb -H "X-Request-Id:123" --cookie "username=zhangl”
1.1.6 Host Route Predicate

在这里插入图片描述
主机路由谓词工厂接受一个参数:主机名模式列表。该模式是一个ant样式的模式。作为分隔符。此谓词匹配与模式匹配的主机头。

在这里插入图片描述

curl -H Host:www.liang.com localhost:9527/payment/lb
1.1.7 Method Route Predicate

在这里插入图片描述
方法路由谓词工厂接受一个或多个参数:要匹配的HTTP方法
如果请求方法是GET或POST,则此路由匹配。

1.1.8 Path Route Predicate

在这里插入图片描述
路径路由谓词工厂接受两个参数:Spring PathMatcher模式列表和一个称为matchOptionalTrailingSeparator的可选标志。

1.1.9 Query Route Predicate

在这里插入图片描述
查询路由谓词工厂接受两个参数:一个必需的参数和一个可选的regexp。

在这里插入图片描述

Predicate就是为了实现一组匹配规则,让请求过来找到对应的Route进行处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值