前面我们简单的介绍了Spring Cloud Gateway的使用和原理,以及SpringCloud Gateway的三大组件:路由、断言和过滤器。而路由则是由一个ID、一个目的URL、一组断言工厂和一组Filter过滤器组成。本篇博客主要介绍路由的配置,ID表示一个路由的唯一标识,URL为要转发的地址,这两个比较简单。复杂的就是断言和过滤器的配置。
首先我们介绍断言的配置,Spring Cloud Gateway将路由作为Spring WebFlux HandlerMapping基础设施的一部分进行匹配。Spring Cloud Gateway包括许多内置的路由断言工厂。所有这些断言都匹配HTTP请求的不同属性。可以组合多个路由断言工厂,并通过逻辑and进行组合。Spring Cloud Gateway 提供的断言工厂有时间断言工厂、Cookie断言工厂
Spring Cloud 提供了三种时间断言工厂,After、Before、和Between。分别表示在某个时间点之后、在某个时间点之前、在某段之间之间路由才生效。时间的格式为Java的ZonedDataTime。如下我们在不同的时间点转发到不同的地址。After断言工厂需要一个带ZonedDateTime的时间参数,断言将匹配发生在这个时间之后的时间;Before断言工厂需要一个带ZonedDateTime的时间参数,断言将匹配发生在这个时间之前的时间;Between断言工厂需要两个带ZonedDateTime的时间参数,断言将匹配发生在这两个时间之间的时间。
spring:
cloud:
gateway:
routes: #路由前缀
- id: after_route
uri: https://example1