日期:2014-05-18 浏览次数:20667 次
public Object doLog(ProceedingJoinPoint pjp) throws Exception {
String methodName = pjp.getSignature().getName();//获取方法名
Object target = pjp.getTarget();//目标类我是aop拦截了I*Service 此处获取的target是实现类还是接口类?
String className = ReflectionUtils.getClassName(target.getClass());//通过反射获取该类名
Object[] args = pjp.getArgs();//获取所有参数
System.out.println("className = " + className);
if (StringUtils.hasLength(methodName)) {
if (methodName.equals("getUser")) { //此处 我只能去匹配字符来知道是走哪个方法吗? 如果我一个接口内方法重载了可咋办呢、 比如getUser(通过id获取) 和gerUser(通过帐号密码获取)
iLogService.logMainMgrUserChange(args);//此处方法会把参数分解去保存到数据库
}
}
return pjp.proceed();
}