Obtendo o chamador a um AOP Proxy Primavera
Pergunta
Eu estou procurando uma maneira de desenvolver uma MethodInterceptor que imprime a classe chamador.
Existe alguma maneira de obter o objeto chamador para o interceptor método?
Solução
Este trabalho poder, declarar uma exceção e, em seguida, usá-lo para obter um olhar para a pilha no momento em que o seu método é interceptado:
Throwable t = new Throwable();
StackTraceElement[] elements = t.getStackTrace();
String calleeMethod = elements[0].getMethodName();
String callerMethodName = elements[1].getMethodName();
String callerClassName = elements[1].getClassName();
System.out.println("CallerClassName=" + callerClassName + " , Caller method name: " + callerMethodName);
System.out.println("Callee method name: " + calleeMethod);
Outras dicas
Você poderia fazer algo bruto com a geração de um rastreamento de pilha e verificá-lo, mas isso é feio
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow