Spring kann Map-Bean nicht automatisch ansteuern
Habe ich definiert eine Karte, die im Frühjahr als solche:
<util:map id="AdditionalParams" scope="prototype" map-class="java.util.HashMap"
key-type="java.lang.String" value-type="java.lang.String">
<entry key="Start" value="12345" />
<entry key="Finish" value="12365" />
</util:map>
Ist und dann bin ich autowiring dieser bean eine Eigenschaft, definiert als:
private @Autowired @Qualifier(value = "AdditionalParams") Map<String, String> additionalParams;
Hierbei eine Ausnahme bekommen geworfen zu sagen, dass:
Verursacht durch: org.springframework.Bohnen.factory.BeanCreationException: Fehler beim erstellen bean mit dem Namen 'DutyCreator': Injektion von autowired Abhängigkeiten ist fehlgeschlagen; verschachtelte Ausnahme ist org.springframework.Bohnen.factory.BeanCreationException: Konnte nicht autowire Feld: private java.util.Karte DutyCreator.additionalParams; verschachtelte Ausnahme ist org.springframework.Bohnen.factory.NoSuchBeanDefinitionException: Kein entsprechendes bean vom Typ [java.lang.String] gefunden für die Abhängigkeit [Karte mit Wert-Typ java.lang.String]: erwartet mindestens 1 Bohne, die als qualifiziert autowire-candidate für diese Abhängigkeit. Abhängigkeit Anmerkungen: {@org.springframework.Bohnen.factory.Anmerkung.Autowired(required=true), @org.springframework.Bohnen.factory.Anmerkung.Qualifier(Wert=AdditionalParams)}
Verursacht durch: org.springframework.Bohnen.factory.NoSuchBeanDefinitionException: Kein entsprechendes bean vom Typ [java.lang.String] gefunden für die Abhängigkeit [Karte mit Wert-Typ java.lang.String]: erwartet mindestens 1 Bohne, die als qualifiziert autowire-candidate für diese Abhängigkeit. Abhängigkeit Anmerkungen: {@org.springframework.Bohnen.factory.Anmerkung.Autowired(required=true), @org.springframework.Bohnen.factory.Anmerkung.Qualifier(Wert=AdditionalParams)}
Irgendwelche Ideen?
Cheers.
<util:map>
xml-Konfiguration InformationsquelleAutor der Frage Nick | 2012-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ab Frühjahr 4.3,
@Autowired
injizieren Listen und maps und den angegebenen code in die Frage funktionieren würde:Aber mit einer geringeren Spring-version, können Sie nicht autowire eine Sammlung wie die. Sie können jedoch Folgendes tun:
oder auch:
Überprüfen Sie die Frühjahr docs, den Abschnitt " Tipps:
InformationsquelleAutor der Antwort gargc
Scheint, wie Ihre @Qualifier(Wert = "AdditionalParams") nicht funktioniert.
Versuchen mit der Karte, indem Sie folgenden Hinweis :
und halten Sie Ihre applicationContext.xml Datei intakt.
InformationsquelleAutor der Antwort Amber
//innen Ihren Anruf
Diese Lösung funktioniert gut für mich
InformationsquelleAutor der Antwort Ramkumar Pillai