从官方仓库 https://github.com/spring-cloud/spring-cloud-gateway.git Fork
出属于自己的仓库。
然后使用git clone
将代码拉取到本地,然后使用maven进行编译打包:mvn package -Dmaven.test.skip=true
,编译打包成功见下图:
生成IDEA项目需要命令 :mvn idea:idea
,然后导入IDEA即可。
代码统计见下图,代码总行数36128
,有效代码行22392
。
运行spring-cloud-gateway-sample
子项目下GatewaySampleApplication
的 main()
方法,启动示例 :
注意:运行
GatewaySampleApplication
可能出现kotlin
相关的编译错误,注释掉kotlin相关类即可。
然后再浏览器中访问:http://127.0.0.1:8080/image/webp,返回信息见下图:
虽然页面返回错误信息,但是注意两处红色框框内容,第一处是提示无法访问httpbin
的instance
,即转发失败;第二处是响应头中添加X-AnotherHeader:baz
。这都是GatewaySampleApplication#customRouteLocator
方法中配置内容:
.route(r -> r.path("/image/webp")
.filters(f ->
f.prefixPath("/httpbin")
.addResponseHeader("X-AnotherHeader", "baz"))
.uri(uri)
)