我有复杂的@RestController 方法,如下所示:
@PostMapping("{id}")
@PreAuthorize("hasRole('ADMIN')")
@Transactional
public Response handleRequest(@PathVariable("id") long id, @RequestBody @Valid Request request) {
return service.handleRequest(id, request);
}
我们的请求处理非常慢,因此我们想检查在特定请求处理任务上花费了多少时间。不幸的是,很多事情都是在我的方法之外完成的,比如:
反序列化请求
证实
权限检查
开始和结束交易
序列化响应
有没有办法简单地测量所有这些部分?也许是一组接收跟踪消息的记录器,以便我可以在每个步骤结束时提取时间戳?
我现在看到的唯一方法是更改该方法以接受 HttpServletRequest 和 HttpServletResponse 并在方法主体内执行这些部分。但是那样我会失去很多 Spring Boot 的好处。
守着一只汪
哔哔one
九州编程
相关分类