2013-10-17 57 views
4

這裏是我的意思是,看到春天的XML文件:如何在Spring XML配置文件類中指定Map屬性?

<bean id = 'a' class="A"> 
    <property name="mapProperty"> 
     <map> 
      <entry key="key1"><value>value1</value></entry> 
     </map> 
    </property> 
</bean> 

我的類看起來如下:

class A { 
    HashMap mapProperty 

} 

我怎樣才能在春天XML文件告訴地圖被注入是類型java.util.HashMap?或者一般來說,我可以提供Map的類名嗎?

請注意,我不能改變class A提前使用Map代替HashMap

謝謝!

回答

5

您可以使用util:map

<util:map id="someId" map-class="java.util.HashMap"> 
    <entry key="key1"> 
     <value>value1</value> 
    </entry> 
</util:map> 

<bean id="a" class="A"> 
    <property name="mapProperty" ref="someId"> 
    </property> 
</bean> 

不要忘記添加util命名空間。

+0

@SachinThapa,我們可以在地圖類中使用Map而不是HashMap嗎?換句話說,如果我們將HashMap作爲map-class,是否必須將HashMap作爲相應getter和setter方法的變量? –

+0

@PraveenKumarMekala這裏'map-class'指定了實現。你不能實例化一個'Map',因爲它是一個接口。但是,是的,您可以將變量聲明爲「Map」。 –

4

您可以使用util模式中的util:map標記。這裏有一個例子:

<util:map id="utilmap" map-class="java.util.HashMap"> 
    <entry key="key1" value="value1"/> 
    <entry key="key2" value="value2"/> 
</util:map> 

<bean id = 'a' class="A"> 
    <property name="mapProperty" ref="utilmap" /> 
</bean> 

順便說一句,你不應該使用原始類型HashMap。使用參數化類型 - HashMap<String, String>

相關問題