【4】初始化加载流程源码解析
文章目录
-
- 核心源码
-
- Route类
- AsyncPredicate接口
- ServerWebExchange 接口
- GatewayFilter
- RouteLocator
- RouteDefinitionLocator接口
- RouteDefinition 类
- 初始化加载流程
-
-
- 路由构建方式
-
- 加载配置
-
- 加载PropertiesRouteDefinitionLocator
-
- 加载RouteDefinitionRouteLocator
-
- 加载HandlerMapping、WebHandler
-
- 启动服务
-
- 参考文档
核心源码
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 | 过滤器用于处理切面逻辑,如路由转发前修改请求头等 |