I am quite new to spring framework and came across the following issue.
I have an interface ClassA
, which is implemented by classed ClassA1
and ClassA2
.
I have the following bean definition added to applicationContext.xml
<bean id="class1" class="com.abc.ClassA1" />
<bean id="class2" class="com.abc.ClassA2" />
I would like to Autowire both the implementation classes as below.
@Autowired
private ClassA1 classA1;
@Autowired
private ClassA2 classA2;
The above code is throwing error as
Could not autowrite to field: com.abc.ClassA1 com.abc.SomeClass.classA1; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No matching bean of type
[com.abc.ClassA1]
But, if I change the autowiring to interface as below:
@Autowired
ClassA classA1;
Then ClassA1 is autowired to the variable. I am clueless on how can I autowire a variable to ClassA2.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…