是否可以从 Spring AspectJ 获取 return 值?

Is it possible to return value from Spring AspectJ?

我正在从 controller 返回值。让它成为ResponseEntity<String>类型。

控制器returns:

new ResponseEntity<String>("{\"msg\":\"success\"}",HttpStatus.OK);

以下值转到我的 spring aspect。我在以下代码中收到此对象:

@AfterReturning(pointcut = "somePointcut()",returning = "retVal")
public ResponseEntity<String> adviceTest3(Object retVal) {

    //here i have access to controller's object

    return new ResponseEntity<String>("{\"msg\":\"changed value within aspect\"}",HttpStatus.OK);
}

我知道 is @AfterReturning。有没有办法操纵数据并实现这一点?

@AfterReturning,没有。引自 documentation

An after returning advice has access to the return value (which it cannot modify), invoked method, methods arguments and target.

您可以改用 @Around