Erste den Anrufer an einen Frühling AOP-Proxy
Frage
Ich bin auf der Suche nach einem Weg, um eine MethodInterceptor zu entwickeln, das den Anrufer Klasse druckt.
Gibt es eine Möglichkeit die Anrufer Objekt in das Verfahren Interceptor zu bekommen?
Lösung
Dies könnte funktionieren, erklärt eine Ausnahme und verwenden Sie es dann an der Zeit, einen Blick auf den Stapel zu erhalten, wenn Ihre Methode abgefangen:
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);
Andere Tipps
Sie könnte etwas roh tun einen Stack-Trace mit dem Erzeugen und Prüfen sie, aber das ist hässlich
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow