将调用者转到Spring AOP代理

3

我正在寻找一种开发MethodInterceptor的方法,该拦截器可以打印调用者类。

是否有办法将调用者对象传递到方法拦截器中?

2个回答

4
这可能起作用,声明一个异常,然后使用它来查看在拦截您的方法时堆栈的情况:
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 + " , 调用者方法名: " + callerMethodName); System.out.println("被调用方法名: " + calleeMethod);

这将获取类名。有没有一种方法可以获取调用实例,以便我的建议可以访问调用实例? - David W

0
你可以通过生成堆栈跟踪并检查它来做一些粗略的事情,但那很丑陋。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接