【发布时间】:2020-01-15 02:28:01
【问题描述】:
如标题所述,我有一个A component required a bean of type [SomeBean] 错误,我想知道哪个组件需要[SomeBean]。有没有办法获取更多关于哪个 bean 需要缺少的信息?
另外,为什么我会收到此错误消息?我很确定有时丢失的 bean 会生成更清晰的消息,说明哪些 bean 需要丢失的。
为什么要问:
我正在尝试制作一个类似于另一个(工作)应用程序的 spring 应用程序,并使用许多类似的 bean。但是我在跟踪 bean 依赖项时遇到了麻烦。所以我删除了工作应用程序的一个 bean 并运行它,以便了解该组件的使用位置和方式。
=> 所以,总的来说,我正在寻找在复杂上下文中跟踪 bean 依赖关系的好方法。
有时我的 IDE(intellij 终极 2019)会给我一些信息,但这里没有。可能是因为依赖项跨越了几个包,其中许多在应用程序代码之外,并且使用了 AutoConfiguration。不知道...
如果我使用弹簧图,它会生成一些不太可读的东西(太卑鄙的 bean)。该图更多地是按提供的位置构建的已找到 bean 的列表,而不是 bean 依赖关系图:我的应用程序列出了它提供的 bean,而 autoConfig 列出了它提供的 bean。但它并没有告诉 autoConf 的哪个 bean 正在使用我的应用程序提供的哪个 bean。或者我只是不明白它是如何工作的。
【问题讨论】:
-
注意:我想也许 spring 没有告诉我哪个 bean 需要丢失的,因为失败的代码实际上是在 spring 上下文中进行直接查找 (
context.getBean)
标签: java spring dependencies