2012-04-11 81 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