2012-04-11 32 views
7

我需要注入一個映射到bean屬性,當遍歷映射條目時,它應該按照插入順序返回它們。在Java中,這與LinkedHashMap類似。但是因爲我在春季文檔中找不到與標籤排序相關的任何內容,所以我不確定在這種情況下是否可以使用它。春天:訂購<map>標籤

有人可以讓我知道我是否可以用於此目的。

非常感謝

回答

8

默認LinkedHashMap - MapFactoryBean用於創建的Map實例。根據文檔:

共享地圖實例的簡單工廠。允許通過XML bean定義中的「map」元素中央設置 地圖。

及其setTargetMapClass方法:

設置爲使用目標地圖類。在Spring應用程序上下文中定義時,可以填充完整的 限定類名稱。
默認是一個鏈接的HashMap,保持註冊順序。

另請參見:LinkedHashMap的

所以沒有必要在這裏使用<util:map>

+0

這樣比較好。猜猜我可以用那個。謝謝! – rKasun 2012-04-11 10:22:58

8

使用此結構:

<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> 

... 
<util:map id="mymap" map-class="java.util.LinkedHashMap"> 
    <entry key="a" value="b" /> 
    <entry key="c" value="d" /> 
</util:map> 

... 
</beans> 

與有序關鍵字來聲明地圖。然後,您可以使用<ref id="mymap" />使用此地圖,也可以在聲明Map屬性的值時直接使用此構造。

+0

太棒了!謝謝。 – rKasun 2012-04-11 10:12:13