如何通过URL在源码中找到Spring映射的方法?

问题描述 投票:0回答:3

我正在调试一个项目,一个使用Spring的在线银行网站后端。通常,我必须在错误报告中锁定的是单击哪些按钮来重现错误。然后,我在浏览器开发控制台中看到请求 URL 和响应。然后我必须以某种方式找到映射到该 URL 的方法并开始调试。

让我烦恼的是 Eclipse 的搜索功能(或者我使用它们的能力)还有很多不足之处。我似乎找不到具有特定映射的方法,例如

https://ourcompany.com/ourapp/delegate/rest/account/foo/info
为了使用,我字符串搜索“/info”或“/foo”或“foo/info”,但得到的结果很少。 Eclipse 所做的就是找到一些包含该字符串的不相关文件并将其打开,然后显示(折叠)其下面的一堆项目文件夹,我猜其中也包含带有该字符串的文件。

有没有更简化的方法来做到这一点?我是否在搜索中遗漏了一些小但重要的内容?如何轻松找到映射到 URL(例如示例中的 URL)的方法?

java spring eclipse spring-mvc
3个回答
2
投票

你可以尝试在里面设置断点

 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter

看方法

@Override
public final ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)
        throws Exception {

    return handleInternal(request, response, (HandlerMethod) handler);
}

这里你有处理程序对象,它保存你需要的类。不确定它在 100% 的情况下是否有效。


0
投票

假设您正在使用注释,那么只需搜索 Java 类文件就应该很容易找到控制器。我将从搜索帐户控制器开始。在这里,我相信您会找到一个映射到“{id}/info”的方法,这应该就是您正在寻找的。

作为旁注,如果您正在寻找更完整的功能集,IntelliJ 可能值得研究。我每天都使用它处理 Java、Spring、Struts 和 Web 文件,它在索引和轻松查找结果方面做得很好。


0
投票

您可以在STS中使用Spring Symbols透视图。在那里您将获得过滤器选项来搜索工作区中的任何控制器 URL 映射

© www.soinside.com 2019 - 2024. All rights reserved.