在Spring Expressions中创建一个Map

时间:2012-10-02 08:45:09

标签: java spring

我希望在spring.xml中创建一个地图。我能得到的最接近的是一份清单

<bean id="transformerHelper" class="com.common.TransformerHelper">
    <property name="srcSystemIDList" value="{T(java.util.Arrays).asList({'11','50'},{'41','50'}) }" />
</bean>

但是我真的需要在地图中使用这些值,在搜索键11或41时我可以返回50.我需要在Spring中定义这个元数据,因为它将远离应用程序存储。

3 个答案:

答案 0 :(得分:2)

请参阅this doc的A.2.2.5节,并注意此示例:

<util:map id="emails">
    <entry key="pechorin" value="pechorin@hero.org"/>
    <entry key="raskolnikov" value="raskolnikov@slums.org"/>
    <entry key="stavrogin" value="stavrogin@gov.org"/>
    <entry key="porfiry" value="porfiry@gov.org"/>
</util:map>

答案 1 :(得分:0)

请参阅链接:converting-static-2d-string-array-to-hashmap并使用init方法或在bean类中实现InitializingBean。

答案 2 :(得分:0)

有一种方法,我建议在你的类中添加另一个属性,一个包含所有地图值(键和值)的String,就像你已经拥有的那样:

{'11','50'},{'41','50'},{'12','34'}

然后,不是注入地图,而是注入字符串并在其中使用setter方法(如果使用setter注入)调用一个小方法(由您创建),该方法将解析该字符串并填充地图,使用{{1或者你喜欢什么。