Spring ConflictingBeanDefinitionException与同名和类的现有非兼容bean定义冲突

时间:2018-03-13 07:47:23

标签: java spring dependency-injection

我遇到与this相同的问题。我知道如何解决这个问题,但我不知道为什么会这样。

提到this时,默认情况下,弹簧注入为by type,而不是by name。这就是为什么我们可以将实现注入接口。

在我的spring web应用程序中,我正在注入相应的接口,在按类型解析时,它应该找到确切的具体类,但我遇到异常ConflictingBeanDefinitionException

interface A;
interface B;

Class com.level1.Child implements A;
Class com.level2.Child implements B;

@Autowired
private B b; // expecting com.level2.Child obviously!

为什么?有没有更好的方法解决这个问题这非常烦人,因为我需要在很多变量上注释Qualifier,因为我的应用程序的不同包中有许多相同的类名。

1 个答案:

答案 0 :(得分:0)

如果使用相同的名称定义了多个bean,则稍后定义的bean将覆盖之前定义的bean。

我建议您将Childs重命名为ChildAChildB