我正在尝试为我的@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
}
...
}
是否可以使用@Component
Spring进行此类继承(我使用的是4.2.4版本)?
答案 0 :(得分:1)
正如Arnaud已经提到的,你有一个带有MainComponent的@Autowire。
要解决此问题,您可以使用@quualifier,例如descirbed: