记录一次奇怪的bug,也算是对自己spring的知识的巩固
在官网中使用案例
ExampleConfiguration.java
@Bean
public GlobalFilter customFilter() {
return new CustomGlobalFilter();
}
public class CustomGlobalFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
log.info("custom global filter");
return chain.filter(exchange);
}
@Override
public int getOrder() {
return -1;
}
}
我的代码如下
package com.fang.filter;
import lombok.extern.slf4j.Slf4j;
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;
/**
* @author Jing
* @version 1.0
* @date 2024/3/9 16:24:00
*/
@Slf4j
@Component
public class FangFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
long current = System.currentTimeMillis();
String path = exchange.getRequest().getURI().getPath();
return chain.filter(exchange).then(Mono.fromRunnable(() -> {
log.info("开始访问:{}", path);
long end = System.currentTimeMillis();
log.info("访问结束:{}", path);
log.info("耗时:{}", end - current);
log.info("========================");
}));
}
@Override
public int getOrder() {
return -1;
}
}
我手贱又在configuration中加了@Component
又一个自定义了Bean
删除了一个就好