Solon Cloud Gateway 开发:熟悉 ExContext 及相关接口

分布式网关的主要工作是路由及数据交换,在定义时,会经常用到:

接口 说明
RouteFilterFactory 路由过滤器工厂
RoutePredicateFactory 路由检测器工厂
CloudGatewayFilter 分布式网关过滤器
ExFilter 交换过滤器
ExPredicate 交换检测器
ExContext 交换上下文

ExFilter

应用场景

  • CloudGatewayFilter extends ExFilter
  • RouteFilterFactory::cteate()
java 复制代码
@FunctionalInterface
public interface ExFilter {
    /**
     * 过滤
     *
     * @param ctx   交换上下文
     * @param chain 过滤链
     */
    Completable doFilter(ExContext ctx, ExFilterChain chain);
}

ExPredicate

应用场景

  • RoutePredicateFactory::create() -> ExPredicate
java 复制代码
@FunctionalInterface
public interface ExPredicate extends Predicate<ExContext> {
}

ExContext

方法 说明
attr(name) 获取属性
attrSet(name, value) 设置属性
target() 路由目标
timeout() 超时配置
remoteAddress() 远程地址
localAddress() 本地地址
realIp() 客户端真实IP
isSecure() 是否安全请求(即 ssl)
rawMethod() 获取原始请求方法
rawURI() 获取原始完整请求地址 uri
rawPath() 原始请求路径
rawQueryString() 获取原始查询字符串
rawQueryParam(name) 获取原始查询参数
rawQueryParams() 获取原始所有查询参数
rawHeader(name) 原始请求头
rawHeaders() 获取原始所有头
rawCookie(name) 原始请求小饼
rawCookies() 获取原始所有小饼
newRequest() 新的请求构建器(上面的数据,可按需修改)
newResponse() 新的响应构建器(上面的数据,可按需修改)
相关推荐
之歆5 小时前
Spring AI入门到实战到原理源码-MCP
java·人工智能·spring
yangminlei5 小时前
Spring Boot3集成LiteFlow!轻松实现业务流程编排
java·spring boot·后端
qq_318121595 小时前
互联网大厂Java面试故事:从Spring Boot到微服务架构的技术挑战与解答
java·spring boot·redis·spring cloud·微服务·面试·内容社区
计算机毕设VX:Fegn08955 小时前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
J_liaty5 小时前
Spring Boot整合Nacos:从入门到精通
java·spring boot·后端·nacos
面汤放盐6 小时前
后端系统设计文档模板
后端
阿蒙Amon6 小时前
C#每日面试题-Array和ArrayList的区别
java·开发语言·c#
daidaidaiyu6 小时前
Spring IOC 源码学习 一文学习完整的加载流程
java·spring
2***d8856 小时前
SpringBoot 集成 Activiti 7 工作流引擎
java·spring boot·后端
五阿哥永琪6 小时前
Spring中的定时任务怎么用?
java·后端·spring