⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

本文主要基于 Spring-Cloud-Gateway 2.0.X M4

摘要: 原创出处 http://www.iocoder.cn/Spring-Cloud-Gateway/build-debugging-environment/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

阅读源码最好的方式,是使用 IDEA 进行调试 Spring Cloud Gateway 源码,不然会一脸懵逼。

胖友可以点击「芋道源码」扫码关注,回复 git019 关键字
获得艿艿添加了中文注释的 Spring Cloud Gateway 源码地址。

阅读源码很孤单,加入源码交流群,一起坚持!

1. 依赖工具

  • Maven ( >= 3.3.3 )
  • JDK
  • IntelliJ IDEA

推荐 Spring Cloud 书籍

2. 源码拉取

从官方仓库 https://github.com/spring-cloud/spring-cloud-gateway.git Fork 出属于自己的仓库。为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。😈

使用 IntelliJ IDEAFork 出来的仓库拉取代码。

如果 master 分支处于 1.x 版本,请使用 IntelliJ IDEA 切换到 2.0.X 分支。

在项目路径下,在命令行执行 mvn package -Dmaven.test.skip=true 命令,Maven 会下载依赖包,可能会花费一些时间,耐心等待下。其间可能会出现因为网络原因( 我相信你懂的 ),可能会出现失败的情况,淡定,重新执行上述命令直到成功。此刻,你就是一个 while(true) 的小强。

执行完命令后,在 IntelliJ IDEAMaven Projects 视图看到部分依赖库处于报错状态,将 Profilesspring 勾选上,如下图所示:

  • 再在耐心等待 Maven 下载依赖库。
  • 这步卡了很久,感谢 知秋【基佬】 的帮助。

3. 运行示例

spring-cloud-gateway-sample 子项目,官方示例。运行 GatewaySampleApplication 的 #main() 方法,启动示例。

运行成功日志如下 :

2017-11-24 15:57:23.913  INFO 54587 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port(s): 8080
2017-11-24 15:57:23.915 DEBUG 54587 --- [ctor-http-nio-1] r.ipc.netty.http.server.HttpServer : [id: 0xec536a1f, L:/0:0:0:0:0:0:0:0:8080] ACTIVE
2017-11-24 15:57:23.917 INFO 54587 --- [ main] o.s.c.g.sample.GatewaySampleApplication : Started GatewaySampleApplication in 17.744 seconds (JVM running for 28.245)

使用浏览器访问 http://127.0.0.1:8080/image/webp 地址,我们会看到一张 "狼" 图。恭喜你,调试环境已经搭建完成。为什么会返回一张图片呢,答案在 GatewaySampleApplication#customRouteLocator() 方法的路由配置。

666. 彩蛋

知识星球

胖友,分享一波朋友圈可好!

对了,这是一个系列文,所以,千万不要错过。

在送一波真彩蛋 :

文章目录
  1. 1. 1. 依赖工具
  2. 2. 2. 源码拉取
  3. 3. 3. 运行示例
  4. 4. 666. 彩蛋