我正在开发一个非常大的java / servlets / web项目,我发现很难找到调用哪些类和方法。有时需要几个小时才能找到合适的班级。如果有一个应用程序或插件或技术,帮助一点点?我正在使用eclipse。
编辑:我正在使用apache和tomcat
答案 0 :(得分:2)
关于您对Bozhos的评论答案:在您的服务器实例上使用分析器。您在单击客户端应用程序中的链接(“浏览器”)之前就开始进行性能分析,并在得到正确的响应后立即停止。然后只需检查探查器日志/视图,找出服务器上实际发生的情况。
答案 1 :(得分:1)
CTRL + ALT + H
,或右键点击>开放式呼叫层次结构(在方法声明时)将为您提供所有呼叫者及其呼叫者,等等。您也可以反转层次结构
右键单击>参考> project将为您提供使用给定类的位置。
答案 2 :(得分:1)
根据你对Bhozo答案的评论,我得出结论,你不是指在开发时,而是在运行时。
我建议您将调试器连接到您的应用程序并暂停它。然后,您可以在那时检查callstack,这通常会让您知道在哪里查看。
为此,请使用以下设置运行您的Java应用程序:
-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
然后在eclipse中,将“remote”的调试配置添加到端口8787并执行它。您的调试器现在已链接到您的应用程序。把eclipse放到调试的角度来看。
现在单击应用程序中的链接,然后立即单击调试器中的暂停按钮。你现在可以看到callstack。通常,一旦你有了线索,你就可以快速找到放置断点的好地方。但是这种技术可以帮助你获得线索:)
答案 3 :(得分:0)
您可能需要考虑使用AOP向代码的某些部分添加跟踪/日志记录方面。这样您就不必更新代码,只需编写一个方面,为每个调用的方法记录一行,例如方法的名称,类和参数。这方面当然可以“关闭”。构建生产版本时,以防止在生产计算机上进行跟踪日志记录。如果你熟悉AOP,你可以轻松调整方面和切入点,例如只记录控制器类中某些方法的调用或类似的东西。
如果您需要有关此解决方案的更多信息,请随时对此答案发表评论,要求提供更具体的信息,或者只是谷歌进行AOP和记录。