这就是我的意思,请参阅以下spring XML文件:
<bean id = 'a' class="A">
<property name="mapProperty">
<map>
<entry key="key1"><value>value1</value></entry>
</map>
</property>
</bean>
我的班级如下:
class A {
HashMap mapProperty
}
如何在spring XML文件中告诉要注入的Map是java.util.HashMap类型?或者一般来说我可以为Map提供类名吗?
请注意,我无法将class A
更改为使用Map
而不是HashMap
提前致谢!!
答案 0 :(得分:6)
您可以使用util:map
<util:map id="someId" map-class="java.util.HashMap">
<entry key="key1">
<value>value1</value>
</entry>
</util:map>
<bean id="a" class="A">
<property name="mapProperty" ref="someId">
</property>
</bean>
不要忘记添加util
命名空间。
答案 1 :(得分:4)
您可以使用util:map
架构中的util
标记。这是一个例子:
<util:map id="utilmap" map-class="java.util.HashMap">
<entry key="key1" value="value1"/>
<entry key="key2" value="value2"/>
</util:map>
<bean id = 'a' class="A">
<property name="mapProperty" ref="utilmap" />
</bean>
顺便说一下,你不应该使用原始类型HashMap
。请改用参数化类型 - HashMap<String, String>
。
答案 2 :(得分:0)
要扩展Sotirios Delimanolis' answer:有关如何包括util
名称空间的信息,请参见this example:
<?xml version="1.0" encoding="UTF-8"?>
<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">
</beans>
请注意,您还需要修改schemaLocation
;)