我有一个方法:
@ApiLogRequest(httpMethod = HttpMethod.POST, path = "/planet")
@PostMapping
public ResponseEntity<PlanetDto> save(@RequestBody PlanetDto dto) {
Long requestId;
return ResponseEntity.ok(service.save(dto));
}
我有一个注释:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ApiLogRequest {
HttpMethod httpMethod();
String path() default "";
}
我有一个注释处理程序,该处理程序从请求中获取数据并将其保存到数据库中。
@AfterReturning(value = "@annotation(after)", returning = "responseEntity")
public void after(ResponseEntity responseEntity, ApiLogResponse after) throws JsonProcessingException {
service.save(ApiLog.of(
TransferType.RESPONSE.name(),
after.httpMethod().name(),
after.path(),
new ObjectMapper().writeValueAsString(responseEntity)
));
}
我想发回已保存值的ID,以便在方法中进一步使用它(在save()
方法的情况下-Long requestId
)。请告诉我如何修复处理程序,以便我可以将处理程序中的内容返回给方法并使用它。