网关 Spring-Cloud-Gateway 源码解析 —— 调试环境搭建

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

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

  • 1. 依赖工具
  • 2. 源码拉取
  • 3. 运行示例
  • 4. 彩蛋

1. 依赖工具

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

推荐 Spring Cloud 书籍

  • 请支持正版。下载盗版,等于主动编写低级 BUG
  • 程序猿DD —— 《Spring Cloud微服务实战》
  • 周立 —— 《Spring Cloud与Docker微服务架构实战》
  • 两书齐买,京东包邮。

推荐 Spring Cloud 视频

  • Java 微服务实践 - Spring Boot
  • Java 微服务实践 - Spring Cloud
  • Java 微服务实践 - Spring Boot / 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() 方法的路由配置。

原文发布于微信公众号 - 芋道源码(YunaiV)

原文发表时间:2018-03-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT笔记

SpringBoot 2.x中英文配置详解

此示例文件作为指导提供。请勿将其全部内容复制到您自己的应用程序中。^^^ 英文配置 # ==================================...

36740
来自专栏哎_小羊

初试Jenkins2.0 Pipeline持续集成

初试Jenkins2.0 Pipeline持续集成 目录: Jenkins 2.0介绍 环境、软件准备 安装、启动并配置jenkins服务 新建Pipelin...

292100
来自专栏Spring相关

第5章—构建Spring Web应用程序—SpringMVC详解

第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找)

16940
来自专栏腾讯云数据库(TencentDB)

Spring MVC使用redis共享session

Spring Web MVC是基于Java的轻量级Web框架,使用了MVC架构模式的思想。Spring Web MVC核心架构为:

959250
来自专栏程序猿DD

Eureka中RetryableClientQuarantineRefreshPercentage参数探秘

作者:李刚 原文:http://www.spring4all.com/article/180 前言 我们知道Eureka分为两部分,Eureka Server和...

1.3K90
来自专栏Linyb极客之路

hazelcast初探

Hazelcast作为一个高度可扩展的数据分发和集群平台,提供了高效的、可扩展的分布式数据存储、数据缓存。Hazelcast是开源的,在分布式技术方面,Haze...

29160
来自专栏JAVA同学会

Spring Cloud配置中心(Config)

Spring Cloud是现在流行的分布式服务框架,它提供了很多有用的组件。比如:配置中心、Eureka服务发现、 消息总线、熔断机制等。

14930
来自专栏cloudskyme

查看linux版本命令

1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6....

446110
来自专栏蓝天

Zookeeper C++编程实战之主备切换

默认zookeeper日志输出到stderr, 可以调用zoo_set_log_stream(FILE*)设置输出到文件中 还可以调用zoo_...

10830
来自专栏Java架构

教你理清SpringBoot与SpringMVC的关系

spring boot就是一个大框架里面包含了许许多多的东西,其中spring就是最核心的内容之一,当然就包含spring mvc。spring mvc 是只是...

15730

扫码关注云+社区

领取腾讯云代金券