Spring:<map>标签的顺序

rKa*_*sun 8 java spring map

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

有人可以告诉我是否可以用于此目的.

非常感谢

Grz*_*bek 9

使用此构造:

<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>
Run Code Online (Sandbox Code Playgroud)

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


Xae*_*ess 8

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

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

及其setTargetMapClass方法:

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

另请参见:LinkedHashMap

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