工作原理

以下图示概览了 Spring Cloud Gateway 的工作原理

Spring Cloud Gateway Server MVC Diagram

在 Spring Cloud Gateway Server MVC 中,路由是普通的 WebMvc.fn RouterFunction 实例,它们使用在 org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions 中定义的特殊 HandlerFunction 来转发 HTTP 请求。请参阅 WebMvc.fn 文档以了解函数式 API 的常规用法。

除了用于 HTTP 转发的自定义 `HandlerFunctions` 外,Spring Cloud Gateway Server MVC 还在 org.springframework.cloud.gateway.server.mvc.predicate.GatewayRequestPredicates 中提供了额外的 `RequestPredicate` 实现,并在 org.springframework.cloud.gateway.server.mvc.filter.FilterFunctions 中提供了 `HandlerFilterFunctions` 实现。所有纯粹的“前置”自定义过滤器都在 org.springframework.cloud.gateway.server.mvc.filter.BeforeFilterFunctions 中实现,并在 `FilterFunctions` 中作为请求处理器进行适配。在 org.springframework.cloud.gateway.server.mvc.filter.AfterFilterFunctions 中的自定义“后置”过滤器也在 `FilterFunctions` 中作为响应处理器进行适配。

还有额外的 `*FilterFunctions` 类用于可选过滤器,这些将在每个过滤器的文档中说明。

路由 URI 上定义的任何路径都将被忽略。