Я использую стиль @AspectJ для написания аспектов, чтобы вести журнал в нашем приложении. В основном у меня есть pointcut, настроенный так:
@Pointcut("call(public * com.example..*(..))")
public void logging() {}
, а затем совет до и после, например:
@Before("logging()")
public void entering() {...}
...
@After("logging()")
public void exiting() {...}
Я хочу создать журнал с помощью этих методов в следующем формате:
logger.trace("ENTERING/EXITING [" className + "." + methodName "()]");
Проблема в том, что я не знать, как получить ссылку на имена классов и методов. Я пробовал:
joinPoint.getThis().getClass()
, но похоже, что это возвращает имя класса вызывающего.
class A {
public void a() {
B.b();
}
}
class B {
public void b() {
...
}
}
приведет к следующему журналу
ENTERING [A.b()]
, может ли кто-нибудь помочь в том, как получить фактический класс точки соединения и имя метода