当我正在编写一些 spring 代码时,我将 spring 4 与 class 和 annotation-config 一起使用。我已经声明了一个 bean 将一个接口实现为一个组件。我正在尝试使另一个 bean 依赖于它的接口时间。但它不起作用,因为 spring 抛出一个错误,没有在该名称中找到 bean。我认为这可能是因为取决于仅适用于具体类自动线,但我不知道为什么要这样设置?有没有人可以解释为什么依赖注释不允许类型自动连接到接口?
简单的示例代码是这样的
@Component
class A implement B{
}
@Component
@DependsOn("B")
class C {
}
Run Code Online (Sandbox Code Playgroud)
除非我更改@DependsOn("B")为,否则上面的代码无法工作
@DependsOn("A")
一般DependsOn不应使用。如果你需要它,你可能做错了什么,或者你有一个极端的极端情况。我从 2006 年开始使用 Spring,现在还不需要它。
JavaDoc 说
在一个 bean不通过属性或构造函数参数显式依赖另一个bean , 而是依赖另一个 bean 初始化的副作用的情况下,很少 使用。
这基本上意味着只有DependsOn在您或其他人编写了错误代码时才使用。例如,一个 beans 构造函数在磁盘上创建另一个 bean 在构造时需要的资源。Springs IoC 容器和声明式接线让您可以控制 bean 之间的依赖关系,但在极少数情况下,某些遗留代码具有未声明的依赖关系DependsOn,您可以控制构造无关 spring bean 的顺序。
| 归档时间: |
|
| 查看次数: |
6912 次 |
| 最近记录: |