繁体   English   中英

使用@Component的抽象类继承(NoUniqueBeanDefinitionException)

[英]Abstract class inheritance with @Component (NoUniqueBeanDefinitionException)

我正在尝试为@Component类创建具有继承关系的结构,以便重用一些通用代码。 但是我遇到了运行时错误:

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [com.example.myproject.MainComponent] is defined: expected single matching bean but found 2: A,B

因此,我创建了3个类,如下所示:

public abstract class MainComponent {
    ...
    void myMethodToOverride();
    void myCommonMethod() {
        // Some common code for A and B
    }
    ...
}

@Component
public class A extends MainComponent {
    ...
    @Override
    void myMethodToOverride() {
        // Some specific code of A class
    }
    ...
}


@Component
public class B extends MainComponent {
    ...
    @Override
    void myMethodToOverride() {
        // Some specific code of B class
    }
    ...
}

Spring的@Component是否可以进行这种继承(我使用的是4.2.4版本)?

正如Arnaud已经提到的那样,您有一个带有MainComponent的@Autowire。

要解决此问题,您可以使用@Qualifier,如下所示:

https://spring.io/blog/2014/11/04/a-quality-qualifier

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM