弹簧:标签顺序<map>



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

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

非常感谢

使用以下构造:

<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 属性的值时直接使用此构造。

默认值 LinkedHashMap - MapFactoryBean 用于创建 Map 的实例。根据文档:

共享映射实例的简单工厂。允许集中设置 通过 XML Bean 定义中的"map"元素进行映射。

及其 setTargetMapClass 方法:

设置要用于目标映射的类。可以填充一个完整的 在 Spring 应用程序上下文中定义的限定类名。
默认是链接的哈希映射,保持注册顺序。

参见:LinkedHashMap

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

最新更新