@AfterReturning 方法在 Spring webflux 应用程序中没有被触发

问题描述 投票:0回答:1

我试图在应用程序中执行控制器方法后打印响应负载,但 afterReturning 方面似乎不起作用。这是一个 spring webflux 应用程序。

 @AfterReturning(value="pointCut()",returning = "respValue")
  public void logResponse(JoinPoint joinPoint, Object respValue) throws Exception {
    .......
    log.info("response :: {}",respValue);
    }

我的控制器方法:

@PostMapping("/test")
public Flux<Test> addCars(ServerWebExchange serverWebExchange) {
    return service.addCars()
            .onErrorResume(ex -> {
                log.info("error ", ex);
                return Mono.error();
            });
}
java spring spring-boot spring-webflux spring-aop
1个回答
0
投票

我能够通过修改我的方面来解决此问题,如下所示:

 @AfterReturning(value="pointCut()",returning = "respValue")
    public void logResponse(JoinPoint joinPoint, Object respValue) throws Exception {
        Flux<Object> resp = respValue instanceof Flux ? (Flux<Object>) respValue : Flux.just(respValue);
          resp.doOnNext(returnValue ->{
          log.info("response :: {}",respValue);
        }).subscribe();
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.