当我编写一些spring代码时,我使用了带有class和annotation-config的Spring4。我已经声明一个bean将接口实现为组件。我正在尝试制作另一个bean来依赖于它的接口时间。但它不起作用,因为spring抛出一个错误,在该名称中找不到bean。我想这可能是因为只靠和实体类的自动电线工作,但我不知道为什么它会这样设置?有人能解释为什么依赖注释不允许类型自动连接到接口吗?
简单的示例代码如下所示
@Component
class A implement B{
}
@Component
@DependsOn("B")
class C {
}
除非我将@dependson(“b”)
更改为@dependson(“a”)
,否则上述代码无法工作
一般情况下,不应使用dependson
。如果你需要这样做,你可能做错了什么,或者你有一个极端的角落案例。我从2006年就开始使用Spring,现在还不需要。
JavaDoc说
在一个bean不通过属性或构造函数参数显式地依赖于另一个bean,而是依赖于另一个bean初始化的副作用的情况下,不常使用。
这基本上意味着只有在您或其他人编写了错误代码时才使用dependson
。例如,一个bean构造函数在磁盘上创建了另一个bean在构造时需要的资源。Springs IoC容器和声明性连接允许您控制bean之间的依赖关系,但在一些遗留代码具有未声明的依赖关系的极其罕见的情况下,dependson
允许您控制构建无关Springbean的顺序。
我在应用程序中配置了Spring cloud sleuth(以及zipkin)。我有一个控制器,它调用服务,然后调用存储库,最后调用数据库。 设置工作正常,Sleuth正在生成spans id,它在zipkin中也可见。我想尝试跨多个内部bean和方法创建spans。我遇到了使用注释管理跨度。这似乎不起作用。 当我使用这里提到的任何注释时,如NewSpan或ContinueSpan,自动连接停止工
问题内容: 当我尝试自动装配Spring RestTemplate时,出现以下错误: 在注释驱动的环境中使用Spring 4。 我的调度程序servlet的配置如下: 我尝试自动连接RestTemplate的类如下: 问题答案: 如果未定义错误,则会看到错误 考虑在配置中定义类型为“ org.springframework.web.client.RestTemplate”的bean。 要么 找不到
在我的springbootapp中,我有以下存储库:- 当我运行这个应用程序时。我收到了这个错误:- 启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2020-12-24 21:09:15 - 应用程序启动失败 说明: com中构造函数的参数0。如何使用Java。演示。存储库。RevisionRepository需要“org”类型的bean
在Springs的最新版本中,我们可以使用注释作为自动连接bean。这将使用bean的类型(或构造函数,如果应用于它的话)自动连接bean。有什么方法可以使用基于bean名称的注释吗?我们在Spring的XML文件中没有注释autowire=“byName”?
为什么我们不能在Springbean中自动连接静态实例变量呢。我知道还有另一种方法可以实现这一点,但我只是想知道为什么我们不能用下面的方法来实现。 e. g.