Leo*_*nce 3 spring spring-boot spring-webflux
我们开始使用 Spring Webflux,我们正在为 REST API 使用带注释的控制器。我们想测量 Spring 引导服务器处理请求所需的总时间。看起来我们可以使用 Spring WebFilter但是我不确定如何设置 StartTime(ServerWebExchange或其他请求标头中的某种属性)?此外,一旦响应完成,我们如何获得 startTime 并计算时间差?
谢谢!
是的,您可以WebFilter为此使用 a 。请参阅下面的示例代码:
@Component
@Slf4j
public class RequestTimingFilter implements WebFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
long startMillis = System.currentTimeMillis();
return chain.filter(exchange)
.doOnSuccess(aVoid ->
log.info("Elapsed Time: {}ms", System.currentTimeMillis() - startMillis)
);
}
}
Run Code Online (Sandbox Code Playgroud)
注意doOnSuccess调用,它只在请求成功时执行。对于错误,您可以添加doOnError调用以查看请求时间。
| 归档时间: |
|
| 查看次数: |
1993 次 |
| 最近记录: |