主要依赖
<!--在springboot的pom文件中,该依赖已经集成了springMVC等web启动器,不需要再添加spring-boot-starter-web 依赖了-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>3.1.4</version>
</dependency>
若父类含有spring-boot-starter-web则引用此依赖以去除web
<!--若父类含有spring-boot-starter-web则引用此依赖以去除web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>test</scope>
</dependency>
消除缓存警告依赖
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.9.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.3.12</version>
</dependency>
yml配置文件
spring:
cloud:
gateway:
discovery:
locator:
enabled: true #开启从注册中心动态创建路由功能,利用微服务名路由
routes:
- id: QIESIYV-ZHUTI-XIAOFEI #路由id 可配置多个不同id
uri: lb://QIESIYV-ZHUTI-XIAOFEI #若匹配则转发的路由地址,lb是轮询访问服务名,也可以直接uri: http:xxx
predicates: #断言,所匹配的url规则
- Path=/ceshi/**
- Header=token,.* #需要token
filters:
- RewritePath=/ceshi/(?<segment>.*), /aaa/$\{segment} #/ceshi/是被替换/aaa/是替换后
意思就是通过此网关访问ceshi/下的任意方法时,会将url前面的域名或者ip端口啥的替换成uri指向的服务