AspectJ pointcuts: obtenga una referencia a la clase de punto de unión y nombre
Estoy usando el estilo @AspectJ para escribir aspectos, para manejar el registro en nuestra aplicación. Básicamente tengo un punto de corte configurado así:
@Pointcut("call(public * com.example..*(..))")
public void logging() {}
y luego un consejo de antes y después como este:
@Before("logging()")
public void entering() {...}
...
@After("logging()")
public void exiting() {...}
Quiero crear un registro en estos métodos en el siguiente formato:
logger.trace("ENTERING/EXITING [" className + "." + methodName "()]");
El problema es que no sé cómo obtener una referencia a los nombres de clase y método. Yo he tratado
joinPoint.getThis().getClass()
pero esto parece devolver el nombre de la clase de la persona que llama.
class A {
public void a() {
B.b();
}
}
class B {
public void b() {
...
}
}
resultaría en el siguiente registro
ENTERING [A.b()]
puede alguien dar alguna ayuda sobre cómo obtener la clase de punto de unión real y el nombre del método