Spring - 将键/值xml文件读入Map

时间:2016-09-13 08:56:15

标签: java xml spring

使用以下xml;在使用Spring框架时,将这些值转换为Map的简洁方法是什么?

<item key="k1" value="val1" />
<item key="k2" value="val2" />
<item key="k3" value="val3" />

我可以轻松地以编程方式从XML文件中读取这些值并自己添加它们但是我希望Spring框架可以适应这个用例,但似乎无法找到它是什么或者它确实可能吗?

e.g。

@SomeSpringAnnotation("classpath://mykeyvalue.xml")
private Map values; //contains 3 entries 

1 个答案:

答案 0 :(得分:2)

这里有几种可能的解决方案(当然还有更多)。

直接初始化

SomeEntity.java

public class SomeEntity {
    private Map<Object, Object> maps;
    //...
}

spring.xml

<bean id="SomeEntityInstance" class="com.example.SomeEntity">
    <!-- java.util.Map -->
    <property name="maps">
        <map>
            <entry key="Key 1" value="1" />
        </map>
    </property>
</bean> 

通过util

SomeEntity.java

public class SomeEntity {
    private Map<Object, Object> maps;
    //...
}

可以是其他 .xml 文件,也可以直接在spring.xml

<util:map id="someMap" map-class="java.util.HashMap">
      <entry key="entry1" value="v1" />
      <entry key="entry2" value="v2" />
  ...

并执行以下操作:

<bean id="someEntity" class="com.example.SomeEntity">
    <property name="mapProperty" ref="someMap">
    </property>
</bean>