我在Spring MVC框架中的应用程序中实现了AspectJ。我可以跟踪函数调用的入口点和退出点,但无法从源文件中获取实际行号。它显示行号Logger类放置切入点和建议的位置。
答案 0 :(得分:1)
也许您的问题与this one类似,所以希望解决方案与您相同:
joinPoint.getSourceLocation().getLine()
这适用于真正的AspectJ(通过LTW),但也许不适用于Spring AOP,它只是某种基于代理的" AOP lite"框架。有关如何为AspectJ配置Spring的更多信息,请参阅用户手册,10.8, Using AspectJ with Spring applications部分。
答案 1 :(得分:0)
我不知道此任务是否有特殊的AspectJ功能,如果没有,那么您可以获得StackTrace然后使用StackTraceElement.getLineNumber()
。
//StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
Exception e =...
e.getStackTraceElement[]
stackTrace[stackTrace.length - 1].getLineNumber();