java - Java Spring 依赖注入创建了两个 bean,而应该只有一个
问题描述
我想让我们的应用程序使用 Springs 依赖注入。出于某种原因,某些类会被实例化两次,这会导致 org.springframework.beans.factory.NoUniqueBeanDefinitionException。一个 Bean 的 ID 只是简单的类名,另一个是全名,以 #0 结尾:
上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建文件 [W:\Projekte\ocp-ospe\ServiceGruppe\osplus.ocp.service.impl 中定义的名称为“FDDConnectionFactory”的 bean 时出错\target\classes\osplus\dynssee\ie\ocp\bs\services\fdd\FDDConnectionFactory.class]:通过构造函数参数0表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.NoUniqueBeanDefinitionException:没有 'osplus.dynssee.ie.ocp.bs.services.fdd.FDDParameterResolver' 类型的合格 bean 可用:预期单个匹配 bean 但找到 2:FDDDefaultParameterResolver,osplus.dynssee .ie.ocp.bs.services.fdd.FDDDefaultParameterResolver#0
@Component
public class FDDDefaultParameterResolver implements FDDParameterResolver {
private FremdsystemProviderProvider fremdsystemProviderProvider;
@Autowired
public FDDDefaultParameterResolver(FremdsystemProviderProvider fPP) {
this.fremdsystemProviderProvider = fPP;
}
// Some methods
}
@Component
public class FDDConnectionFactory {
@Autowired
public FDDConnectionFactory(FDDParameterResolver fddParams) {
this.fddParams = fddParams;
}
}
正如您在上面看到的,我将课程减少到最低限度。但奇怪的是,我无法重新创建另一个表现出相同行为的最小示例。有些注射只是有效,有些则无效。有人知道是什么导致了这种奇怪的行为吗?
解决方案
似乎这些问题与我公司的框架有关,他们已经在特定包上执行了某种组件扫描。
推荐阅读
- java - Androd Studio 在特定时间安排一个方法
- matlab - 节点排序的空间填充曲线
- bootstrap-4 - 我可以让 Bootstrap 宽度响应吗
- python - 如何从处理中的边界框获取最小和最大点?
- python - 我尝试使用 Python Pillow 进行编程,但没有得到输出图像
- reactjs - (错误)使用 React-Redux mapStateToProps + Reducers 将数据从一个组件传递到另一个组件
- entity-framework - 如何从请求中的授权令牌中获取用户 ID,以便可以在 DbConnectionInterceptor 中使用它?
- django - 在 Django Restframework 中覆盖 perform_create
- javascript - 无法在 VSCode 上使用 React JS 导出类
- java - 如何从 Android Studio 生成 jacoco 报告并将其导出到 sonarqube,因为代码覆盖率为零(jacoco+gradle+sonarqube)