gpt4 book ai didi

java - Spring ConflictingBeanDefinitionException 与现有的、不兼容的同名和类的 bean 定义冲突

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:44 25 4
gpt4 key购买 nike

我遇到了与 this 相同的问题。我知道如何解决这个问题,但我不知道为什么会发生这种情况。

this提到过,默认情况下,spring 注入(inject)是按类型,而不是按名称。这就是为什么我们可以将实现注入(inject)到接口(interface)中。

在我的 Spring Web 应用程序中,我注入(inject)相应的接口(interface),在按类型解析时,它应该找到确切的具体类,但我遇到异常 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,因为我的应用程序的不同包中有许多相同的类名。

最佳答案

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

我建议您将 Childs 重命名为 ChildAChildB

关于java - Spring ConflictingBeanDefinitionException 与现有的、不兼容的同名和类的 bean 定义冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49250799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com