本文主要基于 Spring-Cloud-Gateway 2.0.X M4
摘要: 原创出处 http://www.iocoder.cn/Spring-Cloud-Gateway/init/ 「芋道源码」欢迎转载,保留摘要,谢谢!
- 1. 概述
- 2. GatewayClassPathWarningAutoConfiguration
- 3. GatewayLoadBalancerClientAutoConfiguration
- 4. GatewayRedisAutoConfiguration
- 5. GatewayAutoConfiguration
- 5.1 网关的开启与关闭
- 5.2 初始化 NettyConfiguration
- 5.3 初始化 GlobalFilter
- 5.4 初始化 FilteringWebHandler
- 5.5 初始化 GatewayProperties
- 5.6 初始化 PrefixPathGatewayFilterFactory
- 5.7 初始化 RoutePredicateFactory
- 5.8 初始化 RouteDefinitionLocator
- 5.9 初始化 RouteLocator
- 5.10 初始化 RoutePredicateHandlerMapping
- 5.11 初始化 GatewayWebfluxEndpoint
- 666. 彩蛋
������关注微信公众号:【芋道源码】有福利:
1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
4. 新的源码解析文章实时收到通知。每周更新一篇左右。
5. 认真的源码交流微信群。
1. 概述
本文主要分享 Spring Cloud Gateway 启动初始化的过程。
在初始化的过程中,涉及到的组件会较多,本文不会细说,留到后面每篇文章针对每个组件详细述说。
那么这有什么意义呢?先对 Spring Cloud Gateway 内部的组件有整体的印象。
在官方提供的实例项目 spring-cloud-gateway-sample
,我们看到 GatewaySampleApplication 上有 @EnableAutoConfiguration
注解。因为该项目导入了 spring-cloud-gateway-core
依赖库,它会扫描 Spring Cloud Gateway 的配置。
在 org.springframework.cloud.gateway.config
包下,我们可以看到四个配置类 :
- GatewayAutoConfiguration
- GatewayClassPathWarningAutoConfiguration
- GatewayLoadBalancerClientAutoConfiguration
- GatewayRedisAutoConfiguration
它们的初始化顺序如下图 :
推荐 Spring Cloud 书籍:
- 请支持正版。下载盗版,等于主动编写低级 BUG 。
- 程序猿DD —— 《Spring Cloud微服务实战》
- 周立 —— 《Spring Cloud与Docker微服务架构实战》
- 两书齐买,京东包邮。
推荐 Spring Cloud 视频:
2. GatewayClassPathWarningAutoConfiguration
Spring Cloud Gateway 2.x 基于 Spring WebFlux 实现。
org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration
,用于检查项目是否正确导入 spring-boot-starter-webflux
依赖,而不是错误导入 spring-boot-starter-web
依赖。
点击链接 链接 查看 GatewayClassPathWarningAutoConfiguration 的代码实现。
3. GatewayLoadBalancerClientAutoConfiguration
org.springframework.cloud.gateway.config.GatewayLoadBalancerClientAutoConfiguration
,初始化 LoadBalancerClientFilter ,点击 链接 查看代码。
在 《Spring-Cloud-Gateway 源码解析 —— 过滤器 (4.4) 之 LoadBalancerClientFilter 负载均衡》 详细解析 LoadBalancerClientFilter 的代码实现。
4. GatewayRedisAutoConfiguration
org.springframework.cloud.gateway.config.GatewayRedisAutoConfiguration
,初始化 RedisRateLimiter 。
RequestRateLimiterGatewayFilterFactory 基于 RedisRateLimiter 实现网关的限流功能,在 《Spring-Cloud-Gateway 源码解析 —— 过滤器 (4.10) 之 RequestRateLimiterGatewayFilterFactory 请求限流》 详细解析相关的代码实现。