如何在java spring框架中注入Map?如果可能,请提供一些示例代码.
以下是合法的吗?
<property name="testMap">
<map>
<entry>
<key>
<value>test</value>
</key>
<value>
<list>
<value>String</value>
<value>String</value>
</list>
</value>
</entry>
</map>
</property>
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 31
在您的内部首先定义这样的地图applicationContext.xml:
<util:list id="list1">
<value>foo@bar.com</value>
<value>foo1@bar.com</value>
</util:list>
<util:list id="list2">
<value>foo2@bar.com</value>
<value>foo3@bar.com</value>
</util:list>
<util:map id="emailMap" value-type="java.util.List">
<!-- Map between String key and List -->
<entry key="entry1" value-ref="list1" />
<entry key="entry2" value-ref="list2" />
...
</util:map>
Run Code Online (Sandbox Code Playgroud)
然后在你的任何bean中使用这个Map,如下所示:
<bean id="myBean" class="com.sample.beans">
<property name="emailMap" ref="emailMap" />
</bean>
Run Code Online (Sandbox Code Playgroud)
Ken*_*han 22
我认为org.xml.sax.SAXParseException在处理bean配置xml时,你的语法不像弹簧抛出那样合法.
删除<value>周围的标签 后它应该工作<list>.
<property name="testMap">
<map>
<entry>
<key>
<value>test</value>
</key>
<list>
<value>String</value>
<value>String</value>
</list>
</entry>
</map>
</property>
Run Code Online (Sandbox Code Playgroud)
这是我的例子:
<bean class="com.common.handlermgmnt.HandlerMapAdder">
<constructor-arg index="0" type="java.util.Map">
<map key-type="java.lang.String" value-type="com.common.ViewWidget">
<entry key="DefaultView">
<bean class="com.common.DefaultViewWidget"/>
</entry>
<entry key="AnotherView">
<bean class="com.common.AnotherViewWidget"/>
</entry>
</map>
</constructor-arg>
<constructor-arg index="1" type="com.common.handlermgmnt.HandlerManager" ref="widget_handlerManager"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95223 次 |
| 最近记录: |