spring cloud gateway 自定义全局过滤器

本文介绍Spring Cloud Gateway的全局过滤器实现原理及应用示例,展示如何通过自定义GlobalFilter接口来添加请求处理逻辑,控制过滤器调用顺序,并通过配置文件设置路由规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


spring cloud gateway 自定义全局过滤器

 

 

***************************

相关接口

 

GlobalFilter:全局过滤接口

public interface GlobalFilter {
    Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);
}

 

Ordered:过滤接口调用顺序,数值小的在前面调用

public interface Ordered {
    int HIGHEST_PRECEDENCE = -2147483648;
    int LOWEST_PRECEDENCE = 2147483647;

    int getOrder();
}

 

 

***************************

示例

 

********************

配置文件

 

application.yml

spring:
  cloud:
    gateway:
      routes:
        - id: myRoute
          uri: http://www.baidu.com
          predicates:
            - Path=/hello
          filters:
            - StripPrefix=1

 

********************

过滤器

 

过滤器1

@Component
public class CustomFilter implements GlobalFilter, Ordered {

    @Override
    public int getOrder() {
        return 0;
    }

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        System.out.println("hello world");
        return chain.filter(exchange);
    }
}

 

过滤器2

@Component
public class CustomFilter2 implements GlobalFilter, Ordered {

    @Override
    public int getOrder() {
        return 1;
    }

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        System.out.println("hello world2");
        return chain.filter(exchange);
    }
}

 

**********************

测试输出

 

http//localhost:8080/hello

hello world
hello world2

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值