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