@Before("customerJoinPointerExpression()") public void beforeMethod(JoinPoint joinPoint){ joinPoint.getSignature().getName(); // 获取目标方法名 joinPoint.getSignature().getDeclaringType().getSimpleName(); // 获取目标方法所属类的简单类名 joinPoint.getSignature().getDeclaringTypeName(); // 获取目标方法所属类的类名 joinPoint.getSignature().getModifiers(); // 获取目标方法声明类型(public、private、protected) Object[] args = joinPoint.getArgs(); // 获取传入目标方法的参数,返回一个数组 joinPoint.getTarget(); // 获取被代理的对象 joinPoint.getThis(); // 获取代理对象自己
}
// 获取目标方法上的注解 private <T extends Annotation> T getMethodAnnotation(ProceedingJoinPoint joinPoint, Class<T> clazz) { MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); Method method = methodSignature.getMethod(); return method.getAnnotation(clazz); }