【问题标题】:Spring bean injection from xml error : expected single matching bean but found来自 xml 错误的 Spring bean 注入:预期的单个匹配 bean 但找到
【发布时间】:2014-02-13 17:18:02
【问题描述】:

我们正在使用 Spring 为我们的测试创建服务 bean。

我收到错误:无法自动装配字段:私有 x.y.A 预期的单个匹配 bean 但找到 2 [A,AA]

代码:

public class ATest {

    @Autowired
    private A a;

xml

<bean id="ida" class="x.y.A" />

<bean id="idaa" class="x.y.AA" />

地点:

AA.java  

class AA extends A { ... }

Cs

【问题讨论】:

  • 你确定扩展A的不是AA吗?

标签: spring code-injection


【解决方案1】:

使用

@Autowired
@Qualifier("idaa")
private A a;

查看documentation

【讨论】:

  • 如果A 扩展AA,那么您的提议将失败,因为idaaAA 类型的bean,而不是A 类型。
  • 我从错误 "expected single matching bean but found 2" 中得到这个,当自动装配找到两个或多个可能的 bean 来装配一个属性时会发生这种情况,所以它无法决定,@Qualifier 可以帮助你指明你要连接哪个 bean,我这里以 'idaa' 为例,但如果你需要 'ida' ,那就用它吧
猜你喜欢
  • 2016-07-11
  • 1970-01-01
  • 2013-04-20
  • 2016-04-12
  • 2018-04-22
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
相关资源
最近更新 更多