8

我需要将 Map 注入到 bean 属性中,当遍历映射条目时,它应该按插入顺序返回它们。在 Java 中,这类似于 LinkedHashMap。但是由于我在 spring 文档中找不到与标签排序相关的任何内容,因此我不确定是否可以在这种情况下使用它。

有人可以让我知道我是否可以用于此目的。

非常感谢

4

2 回答 2

10

使用此构造:

<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>

用有序键声明地图。然后,您可以使用此映射 using<ref id="mymap" />或者您可以在声明 Map 属性的值时直接使用此构造。

于 2012-04-11T10:09:18.930 回答
9

默认值为 LinkedHashMap-MapFactoryBean用于创建Map. 根据文档:

共享 Map 实例的简单工厂。允许通过 XML bean 定义中的“map”元素集中设置 Maps。

及其setTargetMapClass方法:

设置用于目标地图的类。在 Spring 应用程序上下文中定义时,可以使用完全限定的类名填充。
默认是一个链接的HashMap,保持注册顺序。

另请参阅:LinkedHashMap

所以这里不需要使用<util:map>

于 2012-04-11T10:18:17.163 回答