La pregunta es breve y simple: ¿Hay alguna manera de obtener el objeto Método de un apsectj ProceedingJoinPoint?Obteniendo java.lang.reflect.Method de un ProceedingJoinPoint?
Actualmente estoy haciendo
Class[] parameterTypes = new Class[joinPoint.getArgs().length];
Object[] args = joinPoint.getArgs();
for(int i=0; i<args.length; i++) {
if(args[i] != null) {
parameterTypes[i] = args[i].getClass();
}
else {
parameterTypes[i] = null;
}
}
String methodName = joinPoint.getSignature().getName();
Method method = joinPoint.getSignature()
.getDeclaringType().getMethod(methodName, parameterTypes);
pero no creo que este es el camino a seguir ...
Cuando se utiliza en la aplicación de arranque de primavera, el molde anterior falla. La firma es entonces del tipo MethodSignatureImpl que es una clase interna privada de resortes MethodInvocationProceedingJoinPoint. – Heri
Actualice el comentario anterior (que es incorrecto): en mi prueba importé la clase MethodSignature incorrecta que dio lugar a una ClassCastException. La clase correcta es org.aspectj.lang.reflect.MethodSignature. – Heri