2016-09-07 3 views
1

Hier meine HashMap im Frühjahr Kontext ist der Wert-ref verwendet:Frühling HashMap Wert-ref Schlüsselpunkte ref Wert Name

<util:map id="generalDAOMap" map-class="java.util.HashMap"> 
     <entry key="1" value-ref="userDAO" /> 
     <entry key="2" value-ref="accountsDAO" /> 
     <entry key="3" value-ref="settingsDAO" />  
</util:map> 
<bean id="userDAO" 
     class="com.test.myproj.dao.impl.UserDAOImpl" /> 
<bean id="accountsDAO" 
     class="com.test.myproj.dao.impl.AccountsDAOImpl" /> 
<bean id="settingsDAO" 
     class="com.test.myproj.dao.impl.SettingsDAOImpl" /> 

In meiner Java-Klasse i autowired haben die "generalDAOMap", wie nachstehend:

@AutoWired 

private Map<String,GeneralDAO> generalDAOMap; 

//getters and setters follows 

Wenn ich drucken Sie die Karte Wert seiner wie folgt:

{userDAO = [email protected],accountsDAO = [email protected] , settingsDAO = [email protected]} 

aber die Schlüsselwerte sollten „1“, „2“ und „3“ sein, warum sein Ersetzt als "userDAO", "settingsDAO" und "accountsDAO", aufgrund dessen, wenn ich getGeneralDAOMap.get ("1") benutze, gibt es null zurück. Freundlich helfen.

Antwort

1

Können Sie versuchen @Resource anstelle von @Autowired mit?

Spring docs sagt dies,

Als eine spezifische Folge dieser semantischen Unterschied, Bohnen, die sich als eine Sammlung oder den Kartentyp definiert sind, können nicht durch @Autowired injiziert werden, weil Typabgleichs ihnen nicht richtig anwendbar ist . Verwenden Sie @Resource für solche Beans, indem Sie sich auf die spezifische Sammlung oder Map-Bean anhand des eindeutigen Namens beziehen.

+0

Vielen Dank, es funktioniert sehr gut! – user1058913

0

können Sie versuchen, ...

<util:map id="generalDAOMap" map-class="java.util.HashMap"> 
      <entry key="1"> 
       <bean class="com.test.myproj.dao.impl.UserDAOImpl" /> 
      </entry>  
      <entry key="2"> 
       <bean class="com.test.myproj.dao.impl.AccountsDAOImpl" /> 
      </entry>  
      <entry key="3"> 
       <bean class="com.test.myproj.dao.impl.SettingsDAOImpl" /> 
      </entry>  
    </util:map> 
+0

Immer noch der gleiche Fehler null ... Jetzt hat Map-Inhalt nichts zu drucken. – user1058913

Verwandte Themen