Java 如何轻松找到哪些端点调用方法?

Java 如何轻松找到哪些端点调用方法?,java,eclipse,Java,Eclipse,我有一个有很多端点的应用程序。我对调用我()的函数进行了更改。我想找到哪些控制器端点(直接或分层)调用此函数,以便对其进行测试 @RequestMapping("/a") someEndpoint(){ anyFunction() } @RequestMapping("/b") anotherEndpoint(){ functionWhoIsCallingMe() } anyFunction(){ functionWhoIsCallingMe(

我有一个有很多端点的应用程序。我对调用我()的函数进行了更改。我想找到哪些控制器端点(直接或分层)调用此函数,以便对其进行测试

@RequestMapping("/a")
someEndpoint(){
 anyFunction()
}

@RequestMapping("/b")
anotherEndpoint(){
 functionWhoIsCallingMe()
}

anyFunction(){
  functionWhoIsCallingMe()
}
给出了这段代码,我想知道[“/a”,“/b”]正在调用functionWhoIsCallingMe()

我尝试了“调用层次结构”,但这在这里并不实用,因为打开所有选项卡需要很长时间。我也尝试过像建议的那样进行过滤,但这不起作用,因为您只能指定一种不匹配的类类型,如果不匹配,则不会显示调用方法。我不能说在文件名中只显示带有控制器的文件。

@RequestMapping(“/b”)
public void someEndpoint(){
任意函数(1);
}
@请求映射(“/b”)
公共无效另一个终止点(){
函数whocallingme(1);
}
public void anyFunction(int val/**init val=1*/){
函数whocallingme(val+1);
}
公共void函数whoiscallingme(int val/**init val=1*/){
试一试{
最终StackTraceElement[]ste=Thread.currentThread().getStackTrace();
字符串defName=ste[val+1].getMethodName();
String[]path=this.getClass().getMethod(defName).getAnnotation(RequestMapping.class).value();
System.out.println(“Url路径:+path[0]);
}捕获(例外情况除外){
}
}

您所说的“打开所有选项卡需要很长时间”是什么意思?使用调用层次结构是“谁调用该方法”的答案。您是否尝试过编写日志条目或使用调试器进行调试?@Andreas我问过如何轻松找到谁调用该方法。如果对调用了几个地方的函数使用调用层次结构,则调用层次结构非常大。如果我想找到我要找的东西,我必须打开每个选项卡,因为控制器只有在最后一个选项卡打开后才会显示。打开所有选项卡并进行检查需要几个小时。通过“打开每个选项卡”,您指的是扩展呼叫层次结构树中的节点?除非有数千行代码调用该方法,否则我看不出该方法“需要几个小时才能打开”,因为展开一个节点只需不到1秒的时间。@DLynch要使其正常工作,我必须使用每个可能的参数组合调用我应用程序中的每个端点。我没有对所有端点的调用随时可用。为他们所有人写电话将是一项艰巨的工作。