2012-04-11 8 views
7

マップをBeanプロパティに挿入する必要があり、マップエントリをトラバースするときに挿入順にそれらを返す必要があります。 Javaでは、これはLinkedHashMapに似ています。しかし、私はタグの順序に関連する春のドキュメントで何も見つけることができないので、私はこのシナリオでそれを使用するために使用できるかどうかはわかりません。春:<map>タグ

誰かがこの目的に使用できるかどうかを教えてください。

感謝

答えて

8

デフォルトLinkedHashMapがあります。 docs:

共有マップインスタンスのシンプルなファクトリです。 の中央設定を可能にするXML bean定義の "map"要素を介してマップする。

とそのsetTargetMapClass方法:

ターゲットマップに使用するクラスを設定します。 Springアプリケーションコンテキストで定義されている場合は、完全修飾クラス名 を実装できます。
デフォルトはリンクされたHashMapであり、登録の順序を保持します。

関連項目:そうのLinkedHashMap

ここ<util:map>を使用する必要はありません。

+0

それは良いです。この場合はを使用することができます。ありがとう! – rKasun

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プロパティの値を宣言するときにこの構文を直接使用できます。 MapFactoryBeanMapのインスタンスを作成するために使用される -

+0

素晴らしい!ありがとうございました。 – rKasun