1. 创建项目时加入Gateway组件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210223182904321.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ZlemluZQ==,size_16,color_FFFFFF,t_70)
2. pom.xml中引入
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
3. application统计目录下添加bootstrap.yml文件
spring:
application:
name: gateway-server
cloud:
nacos:
discovery:
server-addr: 192.168.1.111:8848
config:
server-addr: 192.168.1.111:8848
file-extension: yml
gateway:
routes:
- id: to_nacos
uri: http://192.168.1.111:8848
predicates:
- Path=/nacos
profiles:
active: dev
4. 访问路由端口跳转到nacos首页则配置成功
http://192.168.1.111:7777/nacos
5. 创建自定义过滤器类
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
@Component
public class GatewayFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
if(exchange.getRequest().getQueryParams().getFirst("user")==null){
exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);
return exchange.getResponse().setComplete();
}
return chain.filter(exchange);
}
@Override
public int getOrder() {
return 0;
}
}