Beans Eigenschaft setzt nicht von util: list object
Ich habe die folgende Liste unter Verwendung des Namensraums spring util in meiner Konfigurationsdatei spring deklariert:
<util:list id="childList">
<ref bean="child1"/>
<ref bean="child2"/>
<ref bean="child3"/>
</util:list>
Überall dort, wo alle Referenz-Beans mit der Anmerkung @Componant markiert sind und die entsprechenden Beans erstellt werden. Aber wann immer ich versuche, eine Bohneneigenschaft wie zu Autowired:
@Component
public class ListTest{
@Autowired
@Qualifier("childList")
private List<IParent> list;
public List<IParent> getList() {
return list;
}
}
Gibt eine Ausnahme wie folgt aus: org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen der Bean mit dem Namen 'listTest': Das Einspeisen von automatisch verdrahteten Abhängigkeiten ist fehlgeschlagen. geschachtelte Ausnahme ist org.springframework.beans.factory.BeanCreationException: Das Feld konnte nicht automatisch verkabelt werden: private java.util.List com.spring3.componentScanFilterTest.ListTest.list; Verschachtelte Ausnahme ist org.springframework.beans.factory.NoSuchBeanDefinitionException: Es wurde keine passende Bean des Typs [com.spring3.componentScanFilterTest.IParent] für die Abhängigkeit [Auflistung von com.spring3.componentScanFilterTest.IParent] gefunden Autowire-Kandidat für diese Abhängigkeit. Abhängigkeitsanmerkungen: {@ org.springframework.beans.factory.annotation.Autowired (erforderlich = true), @ org.springframework.beans.factory.annotation.Qualifier (value = childList)}
Aber anstelle von @Autowired und @Qualifier, wenn ich als: @Resource (name = "childList")
Es klappt. Warum? Nach meinem Verständnis wird @Autowired verwendet, um die Eigenschaft automatisch nach Typ zu verdrahten, und @Qualifier wird verwendet, um eine beliebige Bean aus mehreren mehrdeutigen Beans auszuwählen.
Bitte erkläre