- 简介
由于zuul2毕源,需要更换网关;做一个笔记记录。 - 版本说明
工程使用的Spring Boot版本为2.1.6.RELEASE,Spring Cloud版本为Greenwich.SR1。 - pom依赖
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>
<dependencies>
<!-- Gateway -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!-- Service Discovery -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
</dependencies>
<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>
- 创建一个Route实例的配置类GatewayRoutes
@Configuration
public class GatewayRoutes {
@Bean
public RouteLocator routeLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route(r ->
r.path("/java/**")
.filters(
f -> f.stripPrefix(1)
)
.uri("http://localhost:8090/helloWorld")
)
.build();
}
}
server:
port: 8888
tomcat:
uri-encoding: UTF-8
spring:
cloud:
gateway:
discovery:
locator:
enabled: false
lower-case-service-id: true
routes:
- id: query-service
uri: lb://query-service
predicates:
- Path=/queryApi/**
filters:
- StripPrefix=1
- PrefixPath=/query-service