有没有办法计算包中每个方法的时间(不包含类)?而不是每个方法的包开始时间和结束时间。还有其他选择吗?
提前致谢!!
答案 0 :(得分:0)
使用AspectJ,您可以使用.around()注释:
@Aspect
public class TimedAnnotation {
@Around("execution(* *(..)) && @annotation(TimedMethod)")
public Object around(ProceedingJoinPoint point) throws Throwable {
long start = System.currentTimeMillis();
try {
Object p = point.proceed();
return p;
}
finally {
System.out.println(System.currentTimeMillis() - start);
}
}
}
您仍然需要为每种方法添加此注释:
@TimedMethod
public void doSomething() {
...
}
您需要将AspectJ添加到您的pom.xml中:
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.7.3</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>