新建一个项目
一、依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.varz.boot</groupId>
<artifactId>gateway</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>varz-boot-gateway</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
注意:不能同时引入web依赖
二、配置
2.1启动类加注解
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient //启用Gateway
public class VarzBootGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(VarzBootGatewayApplication.class, args);
}
}
2.2 加入配置
采用properties或者yml,看各人喜好。
application.yml
server:
port: 8084 # 端口
spring:
cloud:
gateway:
routes:
- id: admin-service
uri: http://localhost:20912
predicates:
- Path=/api/admin/**
filters:
- StripPrefix=2
application.properties
server.port= 8084 # 端口
spring.cloud.gateway.routes[0].id=admin-service
spring.cloud.gateway.routes[0].uri=http://localhost:20912
spring.cloud.gateway.routes[0].predicates[0]=Path=/api/admin/**
spring.cloud.gateway.routes[0].filters[0]=StripPrefix=2
需注意配置的拼写,采用yml的话更需要检查缩进
上述的配置实现:访问:http://localhost:8084/api/admin/test,转发到:http://localhost:20912/test
END