0

我将 Spring Roo 用于我的 restFull Web 服务。工作很棒。现在我想更改所有实例的默认行为。帖子完成后,我需要返回的结果记录 ID。Roo 代码是

@RequestMapping(method = RequestMethod.POST, headers = "Accept=application/json")
public ResponseEntity<String> MdrAspectController.createFromJson(@RequestBody String json) {
    MdrAspect mdrAspect = MdrAspect.fromJsonToMdrAspect(json);
    mdrAspectService.saveMdrAspect(mdrAspect);
    HttpHeaders headers = new HttpHeaders();
    headers.add("Content-Type", "application/json");
    return new ResponseEntity<String>(headers, HttpStatus.CREATED);
}

我想将退货更改为

    return new ResponseEntity<String>(mdrAspect, headers, HttpStatus.CREATED);

这意味着它会返回创建的记录(因为我需要记录 ID)。

我想为所有 Roo_Controller_Json.aj 编写一个方面来执行此操作。但这已经是一个方面。这可能吗?

4

1 回答 1

1

是的,可以在其他方面应用方面。这甚至是许多初学者遇到的典型陷阱,因为他们忘记将自己的切面排除在切入点之外,这可能导致在无限循环中调用建议,从而导致堆栈溢出 - 在这里使用这个词很好。;-)

是的,可以通过通知来更改方法的返回值around()

不,不可能从一个方面访问局部变量的值。因此,在您的示例中,如果您想访问mdrAspect您需要从其他来源获取它的值或自己创建一个实例。

如果您有更具体的问题,请告诉我。

于 2013-07-13T12:25:08.860 回答