跳到主要内容

【4】初始化加载流程源码解析

文章目录

    • 核心源码
    • Route类
    • AsyncPredicate接口
    • ServerWebExchange 接口
    • GatewayFilter
    • RouteLocator
    • RouteDefinitionLocator接口
    • RouteDefinition 类
  • 初始化加载流程
      1. 路由构建方式
      1. 加载配置
      1. 加载PropertiesRouteDefinitionLocator
      1. 加载RouteDefinitionRouteLocator
      1. 加载HandlerMapping、WebHandler
      1. 启动服务
  • 参考文档

核心源码

Route类

Route 是 gateway 中最基本的组件之一,表示一个具体的路由信息载体。路由信息由ID、目标URl、一组断言和一组过滤器组成。如果断言路由为真,则说明请求的URI和配置匹配。

public class Route implements Ordered {


private final String id;
private final URI uri;
private final int order;
private final AsyncPredicate<ServerWebExchange> predicate;
private final List<GatewayFilter> gatewayFilters;
private final Map<String, Object> metadata;
}

Route的成员属性说明如下:

属性作用
id标识符,区别于其他 Route
uri路由指向的目的地 uri,即客户端请求最终被转发的目的地
order用于多个 Route 之间的排序,数值越小排序越靠前,匹配优先级越高
predicate谓语,表示匹配该 Route 的前置条件,即满足相应的条件才会被路由到目的地 uri
gatewayFilters过滤器用于处理切面逻辑,如路由转发前修改请求头等