【问题标题】:How to find a particular bean in pom-imported dependencies?如何在 pom 导入的依赖项中找到特定的 bean?
【发布时间】:2018-09-11 11:06:24
【问题描述】:

我遇到了一个从 POM.xml 导入的 bean 引起的接线问题。 在 Eclipse-STS 中搜索 bean(@Service bean)的正确方法是什么?

什么不起作用:

  1. 在 Spring Explorer 中查找不起作用。扫描项目以导入所有配置文件,但没有运气。
  2. 将其作为资源查找 (Ctrl+Shift+R) 无济于事;因为它是通过 pom.xml 导入的。
  3. 很难通过快速文本搜索 (Ctrl+Shift+L) 找到它。
  4. 将其作为类型查找 (Ctrl+Shft+T) 不起作用。

什么有效:

  1. 在项目 java 文件中写入 LdapClientServiceImpl 允许导入 bean 并在 maven 导入的依赖项中找到它。

这是正确的方法吗?
我不这么认为。
那么如何正确找到maven依赖的bean呢?

【问题讨论】:

  • 我的回答不是最好的。但是,如果最终找不到您的班级所在的位置,请尝试使用 JBosstattletale (tattletale.jboss.org):一个列出所有班级及其位置的工具。有时很有用。

标签: java spring eclipse spring-tool-suite


【解决方案1】:

我为你准备了两种不同的策略:

(1) 使用安装了 STS 3.9.x 的 Eclipse,您可以打开定义 @Service 注释的类型(如果您正在寻找带有 @Service 注释的内容)。然后选择文件中的类名,右键,显示引用,选择在工作区中搜索。这会生成一个对 @Service 注释的引用列表,并会显示它在库中的使用位置。

(2) 继续下载最新的 STS4 公测版 (https://spring.io/tools4),打开一个新的工作区,然后导入您的项目。确保您使用 JDK(而不是 JRE)运行 IDE。并将 spring boot 执行器添加到您的依赖项中(如果您正在使用 Spring Boot)。然后启动项目。全新的 STS4 工具将以绿色背景突出显示源代码中的 Spring 注释,并准确告诉您在实时运行的应用程序中连接了哪些 bean - 并允许您导航到该 bean 定义。这样您就可以直接查看连接了哪些 bean 以及它们来自何处(它们的类型)以及它们在何处被定义为 bean(资源,例如 @Configuration 类)。

【讨论】:

  • 关于 1) 我尝试在 Spring Explorer 中查找 @Service bean 的列表,但它没有在其中显示服务;关于 2) 有兴趣尝试 STS4。由于项目在自动装配阶段失败,因此无法真正使用您建议的选项。
  • 请注意,(1) 与 Spring Explorer 无关,那里不涉及该视图。相反,我建议尝试常规的 Java 搜索功能。
猜你喜欢
  • 2016-12-18
  • 2023-02-14
  • 1970-01-01
  • 2011-06-20
  • 2019-09-17
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 2017-01-02
相关资源
最近更新 更多