Spring Cloud Gateway Server Web MVC
章节总结
如何包含 Spring Cloud Gateway Server Web MVC
要在项目中包含 Spring Cloud Gateway Server Web MVC,请使用组 ID 为 org.springframework.cloud、工件 ID 为 spring-cloud-starter-gateway-server-webmvc 的 starter。有关使用当前 Spring Cloud Release Train 设置构建系统的详细信息,请参阅 Spring Cloud 项目页面。
术语表
路由:网关的基本构建模块。它由ID、目标URI、一组断言和一组过滤器定义。如果聚合断言为真,则路由匹配。
工作原理
下图提供了 Spring Cloud Gateway 工作原理的高级概览:
Java Routes API
Spring Cloud Gateway Server MVC 默认使用 Spring WebMvc.fn 的 RouterFunctions.Builder 来创建路由,这些路由是 WebMvc.fn 的 RouterFunction 实例。
Gateway 请求断言
Spring Cloud Gateway MVC 将路由匹配作为 Spring WebMvc.fn HandlerMapping 基础设施的一部分。Spring Cloud Gateway 复用了许多来自 WebMvc.fn 的 RequestPredicate 实现,并包含了其他自定义的 RequestPredicate 实现。所有这些断言都基于 HTTP 请求的不同属性进行匹配。您可以使用 RequestPredicate.and() 和 RequestPredicate.or() 方法组合多个路由断言工厂。
网关处理器过滤器函数
31 个项目
HttpHeadersFilters
HttpHeadersFilters 在请求发送到下游之前应用于这些请求,例如在 NettyRoutingFilter 中。
编写自定义谓词和过滤器
Spring Cloud Gateway Server MVC 使用 Spring WebMvc.fn API(javadoc)作为 API 网关功能的基础。
使用 Servlet 和 Servlet 过滤器
Spring Cloud Gateway Server MVC 专为基于 Servlet API 构建并部署到 Servlet 容器的 Servlet 栈 Web 应用程序而设计。如果你的应用程序使用 Servlet 或 Servlet 过滤器,你可能需要注意它们的顺序。