SpringBoot 如何获取完整的接口执行时长
可以在 Spring Boot 中使用 AOP(面向切面编程)和拦截器来获取完整的接口执行时长。以下是一些步骤:
-
创建一个切面类,并使用
@Aspect注解进行标注。 -
在切面类中创建一个方法,并使用
@Around注解进行标注。该方法将拦截所有被@RequestMapping注解的方法。 -
在方法中,使用
System.currentTimeMillis()记录开始时间,并执行接口方法。 -
在接口方法执行后,再次使用
System.currentTimeMillis()记录结束时间,并计算执行时长。 -
可以将执行时长记录到日志中,或者返回给前端。
以下是一个示例代码:
@Aspect
@Component
public class ExecutionTimeAspect {
@Around("@annotation(org.springframework.web.bind.annotation.RequestMapping)")
public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
Object proceed = joinPoint.proceed();
long executionTime = System.currentTimeMillis() - start;
System.out.println(joinPoint.getSignature() + ' executed in ' + executionTime + 'ms');
return proceed;
}
}
在上面的示例中,我们使用 @Around 注解来拦截所有被 @RequestMapping 注解的方法,并在方法执行前和执行后记录时间。最后,我们将执行时长记录到控制台中。
原文地址: https://www.cveoy.top/t/topic/jNcv 著作权归作者所有。请勿转载和采集!