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。

The After Route Predicate Factory(规定时间之后才能请求)

spring:
  application:
    name: cloud-gateway-service
  cloud:
    gateway:
      routes:
        - id: getPaymentById
          uri: lb://CLOUD-PAYMENT-SERVICE
          predicates:
            - Path=/payment/get/**
            - After=2021-12-13T17:42:47.789-07:00[America/Denver]

获得指定格式的时间戳字符串

import java.time.ZonedDateTime;

public class Test {

    public static void main(String[] args) {
        ZonedDateTime zbt = ZonedDateTime.now();
        // 2021-12-13T17:22:35.259+08:00[Asia/Shanghai]
        System.out.println(zbt);
    }

}

The Between Route Predicate Factory(指定时间范围内才能请求)

spring:
  application:
    name: cloud-gateway-service
  cloud:
    gateway:
      routes:
        - id: getPaymentById
          uri: lb://CLOUD-PAYMENT-SERVICE
          predicates:
            - Path=/payment/get/**
            - Between=2021-12-13T17:22:35.259+08:00[Asia/Shanghai], 2021-12-13T17:42:47.789-07:00[America/Denver]
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐