我想在xml中使用spring bean在map中做地图我正在做下一个: 我的目标是拥有Map> mobileMap 但是当我使用时,我会得到包装纸 mobileMap.get( “mobileMap”) 我得到了没有包装器的请求 这是我的xml:
<bean class="org.springframework.beans.factory.config.MapFactoryBean"
id="mobileMap1111">
<property name="targetMapClass">
<value>java.util.HashMap</value>
</property>
<property name="sourceMap">
<map>
<entry key="CFNetwork/221.5">
<bean class="org.springframework.beans.factory.config.MapFactoryBean">
<property name="targetMapClass">
<value>java.util.HashMap</value>
</property>
<property name="sourceMap">
<map>
<entry key="9.2.0">
<bean class="com.betamedia.tp.api.model.UserAgentInfo">
<property name="browser" value="Darwin" />
<property name="isMobile" value="true" />
<property name="browserVersion" value="9.2.0" />
<property name="operatingSystem" value="Mac OS X " />
<property name="operatingSystemVersion" value="10.5.2" />
</bean>
</entry>
</map>
</property>
</bean>
</entry>
<entry key="CFNetwork/596.4.3">
<bean class="org.springframework.beans.factory.config.MapFactoryBean">
<property name="targetMapClass">
<value>java.util.HashMap</value>
</property>
<property name="sourceMap">
<map>
<entry key="12.4.0">
<bean class="com.betamedia.tp.api.model.UserAgentInfo">
<property name="browser" value="Darwin" />
<property name="isMobile" value="true" />
<property name="browserVersion" value="12.4.0" />
<property name="operatingSystem" value="Mac OS X " />
<property name="operatingSystemVersion" value="10.8.4" />
</bean>
</entry>
</map>
</property>
</bean>
</entry>
</map>
</property>
</bean>
但我继续进入autuwired领域:地图地图的地图,必须这样做:
@Autowired
protected Map<String, Map<String, Map<String, UserAgentInfo>>> mobileMap;
而不是
@Autowired
protected Map<String, Map<String, UserAgentInfo>> mobileMap;
我做错了什么
答案 0 :(得分:2)
而不是使用
@Autowired
protected Map<String, Map<String, Map<String, UserAgentInfo>>> mobileMap;
我应该用
@Resource(name = "mobileUserAgentMap")
protected Map<String, Map<String, UserAgentInfo>> mobileUserAgentMap;