-
[深圳|结业弟子]JAVA-杨萧0
看了一下你的配置,感觉是aop都没有切进去,我把我的配置给你贴一下,你可以对比一下,看一下是哪里少了。
这个是控制类:
@Aspect
@Component
public class AopController {
private static Log logger = LogFactory.getLog(AopController.class);
private static final long ONE_MINUTE = 0;
/**
* 统计方法执行耗时Around环绕通知
*
* @param joinPoint
* @return
*/
//类型:public
@Around("execution (* com.controller.PaperController.*(..))")
public Object timeAround(ProceedingJoinPoint joinPoint) {
//logger.info("进入控制类切面中。。。\n\n");
// 定义返回对象、得到方法需要的参数
Object obj = null;
Object[] args = joinPoint.getArgs();
long startTime = System.currentTimeMillis();
try {
obj = joinPoint.proceed(args);
} catch (Throwable e) {
logger.error("统计某方法执行耗时环绕通知出错", e);
}
// 获取执行的方法名
long endTime = System.currentTimeMillis();
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
String methodName = signature.getDeclaringTypeName() + "." + signature.getName();
// 打印耗时的信息
this.printExecTime(methodName, startTime, endTime);
//logger.info(".....................................................");
return obj;
}
/**
* 打印方法执行耗时的信息,如果超过了一定的时间,才打印
*
* @param methodName
* @param startTime
* @param endTime
*/
private void printExecTime(String methodName, long startTime, long endTime) {
long diffTime = endTime - startTime;
if (diffTime > ONE_MINUTE) {
logger.info( methodName + " Controller 类方法执行耗时: " + diffTime );
}
}
还有需要注意的是,需要将aop包扫描
<!-- 4.扫描web相关的bean -->
<context:component-scan base-package="com.aop"/>
编辑于2018-10-05
- 去第 页