SpringCloud Gateway简介本文是介绍一下SpringCloud Gateway简单路由转发使用。
SpringCloud是基于Spring framework 5,Project Reactor和Spring Boot 2.0构建,目标是用于替代zuul。
官方文档在官方文档上是这样介绍Spring Cloud Gateway的:
该项目提供了一个用于在Spring MVC之上构建API网关的库。Spring Cloud Gateway旨在提供一种简单而有效的方式来路由到API,并为他们提供横切关注点。)
入门案例接下来,介绍一下简单使用SpringCloud Gateway路由功能(本文使用SpringBoot2.0.0.RELEASE和SpringCloud Finchley.RC1版本)。
创建项目新建一个项目,项目种加入SpringCloud Gateway依赖,完整pom如下:
SpringBoot主程序在类中配置路由4.0.0 com.dalaoyang springcloud_gateway0.0.1-SNAPSHOT jar springcloud_gateway springcloud_gateway org.springframework.boot spring-boot-starter-parent2.0.0.RELEASE UTF-8 UTF-8 1.8 Finchley.RC1 org.springframework.cloud spring-cloud-starter-gatewayorg.springframework.boot spring-boot-devtoolsruntime org.springframework.boot spring-boot-starter-testtest org.springframework.cloud spring-cloud-dependencies${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
主程序中加入了一种配置路由的方法,利用@Bean的方式自定义RouteLocator。
package com.dalaoyang;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.gateway.route.RouteLocator;import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;import org.springframework.context.annotation.Bean;@SpringBootApplicationpublic class SpringcloudGatewayApplication { public static void main(String[] args) {
SpringApplication.run(SpringcloudGatewayApplication.class, args);
} @Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes()
.route(r -> r.path("/jianshu")
.uri("http://www.jianshu.com/u/128b6effde53")
).build();
}
}在配置文件中配置:server: port: 8888spring: application: name: gateway-service cloud: gateway: routes: - id: dalaoyang uri: http://www.dalaoyang.cn/ predicates: - Path=/dalaoyang/** - id: juejin uri: https://juejin.im/user/5aa50b96f265da23866f836e predicates: - Path=/juejin/**
作者:dalaoyang
链接:https://www.jianshu.com/p/4afdde8a7e42



