aop计时器
AspectTest.class
package cn.tedu.service;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
//spring的aop功能 其实就是为了增强方法的功能 有切点和通知组成
//aop的使用场景;事务管理 缓存管理 权限管理 日志管理 性能测试
@Component
@Aspect//1、标记是一个切面
public class AspectTest {
//2、切点:指定包 类 方法 功能
// @Pointcut("execution(返回值 包名.类名.方法名(参数列表))")
// *代表一个值 ..表示多个值 第一个*表示方法返回的值 第二个*表示类 第三个*表示方法
@Pointcut("execution(* cn.tedu.service..*.*(..) )")
public void point() {
}
//3、通知 本质就是一个方法 增强功能
@Around("point()")//标记这是环绕通知
public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
Object o = joinPoint.proceed();//执行原来的业务方法
long end = System.currentTimeMillis();
System.out.println("aop计算的耗时是:"+(end-start));
return o; //返回这个结果
}
}