Filter Spring云网关过滤器排序

Filter Spring云网关过滤器排序,filter,spring-cloud-gateway,Filter,Spring Cloud Gateway,我正在使用SpringCloudGatewayFilter,希望通过GatewayFilterFactory过滤请求, 但订单不使用@order注释 我试图交换过滤器的顺序,但不起作用 @Slf4j @订单(1) @组成部分 公共类AccessFilter实现GatewayFilterFactory{ @凌驾 公共网关筛选器应用(AccessFilter.Config){ 返回(交换、链)->{ log.info(“第二次访问过滤器”); //做点什么 } } } 订单(-1) @Slf4j

我正在使用SpringCloudGatewayFilter,希望通过
GatewayFilterFactory
过滤请求, 但订单不使用
@order
注释

我试图交换过滤器的顺序,但不起作用


@Slf4j
@订单(1)
@组成部分
公共类AccessFilter实现GatewayFilterFactory{
@凌驾
公共网关筛选器应用(AccessFilter.Config){
返回(交换、链)->{
log.info(“第二次访问过滤器”);
//做点什么
}
}
}
订单(-1) @Slf4j @组成部分 公共类AddTraceIdGlobalFilter实现了GlobalFilter{ @凌驾 公共Mono筛选器(服务器WebExchange exchange、网关筛选器链){ log.info(“首先在globalfilter中”); //做点什么 } } 我的yaml文件:

spring:
  cloud:
    gateway:
      routes:
      - id: user_1
        uri: http://user:8080
        predicates:
        - Path=/v1/user/info
        filters:
        - AccessFilter
我预计产出:

in globalfilter first
in AccessFilter second
但实际产出:

in AccessFilter second
in globalfilter first

GatewayFilterFactory无法应用
@Order
Ordered
。 你必须使用

@组件
公共类AccessFilter实现GatewayFilterFactory{
@凌驾
公共网关筛选器应用(AccessFilter.Config){
返回新的OrderedGatewayFilter((交换,链)->{
log.info(“第二次访问过滤器”);
//做点什么
}, 1)
}
}