Browse Source

feat: 日志新增方法耗时注解

master
yinhuaiwei 2 months ago
parent
commit
fad2760d2e
2 changed files with 38 additions and 0 deletions
  1. +12
    -0
      src/main/java/com/inspect/nvr/aop/TimeTrace.java
  2. +26
    -0
      src/main/java/com/inspect/nvr/aop/TimeTraceAspect.java

+ 12
- 0
src/main/java/com/inspect/nvr/aop/TimeTrace.java View File

@ -0,0 +1,12 @@
package com.inspect.nvr.aop;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TimeTrace {
String value() default "";
}

+ 26
- 0
src/main/java/com/inspect/nvr/aop/TimeTraceAspect.java View File

@ -0,0 +1,26 @@
package com.inspect.nvr.aop;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Aspect
@Component
@Slf4j
public class TimeTraceAspect {
@Around("@annotation(TimeTrace)")
public Object trace(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
try {
return joinPoint.proceed();
} finally {
long end = System.currentTimeMillis();
long duration = end - start;
// 获取方法签名
String methodName = joinPoint.getSignature().toShortString();
log.info("方法 {} 执行耗时: {} ms", methodName, duration);
}
}
}

Loading…
Cancel
Save