项目地址(gitee): https://gitee.com/qinenqi/online
前提是已经配置好了注册与发现机制(小编用的是nacos)
- 引入依赖
<!-- springcloud gateway -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 这个是上面依赖的版本 -->
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
- 新建 application.yml 文件
spring:
cloud:
gateway:
routes:
- id: test_route
uri: lb://online-cart
predicates:
- Path=/api/cart/**
filters:
- RewritePath=/api/(?<segment>.*),/$\{segment}
注:
test_route这个路由的解释:
-
id: test_route 路由的规则,要求唯一,见名知意即可
-
uri
uri: lb://online-cart: 匹配后提供服务的路由地址(注册中心配置方式,能提供负载均衡的能力)
uri: http://localhost:8001 匹配后提供服务的路由地址 -
predicates
predicates:
- Path=/api/cart/**
断言 路径相匹配后,进行路由, - Path是路径匹配的方式 -
filters
filters:- RewritePath=/api/(?.*),/${segment}
过滤 加入:http://localhost:88/api/cart/testController/test 经过断言匹配后,再经过过滤,路由到 http:///online-cart/cart/testController/test
- RewritePath=/api/(?.*),/${segment}