配置文件:
<!-- 开启扫描 -->
<context:component-scan base-package="com.cn"></context:component-scan>
<!-- 开启标注形式的aop -->
<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
利用环绕通知:
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
/**切面对象**/
@Component
@Aspect
public class LogAspect {
/**环绕通知统计方法执行时间*/
//ProceedingJoinPoint 连接点
@Around("within(com.xdl.service.*)")
public Object around(ProceedingJoinPoint pjp) {
//方法执行之前 获取当前时间
long star = System.currentTimeMillis();
Object obj = null;
try {
obj = pjp.proceed();
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long end = System.currentTimeMillis();
//getSignature() 方法签名 全名
System.out.println(pjp.getSignature().getName()+"执行了"+(end-star)+"s");
return obj;
}
}