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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage