我遇到与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
,因为我的应用程序的不同包中有许多相同的类名。
答案 0 :(得分:0)
如果使用相同的名称定义了多个bean,则稍后定义的bean将覆盖之前定义的bean。
我建议您将Childs
重命名为ChildA
和ChildB
。