java – Spring注入地图问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Spring注入地图问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3003字,纯文字阅读大概需要5分钟。
内容图文
![java – Spring注入地图问题](/upload/InfoBanner/zyjiaocheng/780/c2f1e3cde03a46e08c2093049b071a36.jpg)
我看到以下错误试图将地图注入bean.我不确定Spring是如何推断出我尝试注入的地图是org.apache.commons.collections.map.LinkedMap类型.我该如何解决这个问题?
[org.apache.commons.collections.map.LinkedMap] to required type
[java.util.LinkedHashMap] for property ‘asyncConnectorDaoMap’; nested
exception is java.lang.IllegalArgumentException: Cannot convert value
of type [org.apache.commons.collections.map.LinkedMap] to required
type [java.util.LinkedHashMap]
Spring Config
<bean id="fulfillment.management.AsyncConnectorFactory" class="com.service.async.AsyncConnectorFactory"> <property name="asyncConnectorDaoMap"> <map key-type="java.lang.String" value-type="com.service.async.AsyncConnectorDao">
<entry key="ACCOUNT_MANAGEMENT_CONTROLLER" value-ref="core.commons.AsyncConnectorDao"></entry>
<entry key="CUSTOMER_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
<entry key="ACCOUNT_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
<entry key="LOCATION_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry> </map> </property> </bean>
代码如下
import java.util.LinkedHashMap;
public class AsyncConnectorFactory {
private LinkedHashMap<String, AsyncConnectorDao> asyncConnectorDaoMap;
public LinkedHashMap<String, AsyncConnectorDao> getAsyncConnectorDaoMap() {
return asyncConnectorDaoMap;
}
public void setAsyncConnectorDaoMap(
LinkedHashMap<String, AsyncConnectorDao> asyncConnectorDaoMap) {
this.asyncConnectorDaoMap = asyncConnectorDaoMap;
}
public AsyncConnectorDao getAsyncConcurrentConnectorDao(String serviceIdentifier) {
return asyncConnectorDaoMap.get(serviceIdentifier);
}
}
修改后的工作配置
<bean id="fulfillment.management.AsyncConnectorFactory" class="com.service.async.AsyncConnectorFactory">
<property name="asyncConnectorDaoMap" ref="asyncConnectorDaoMap1"/>
</bean>
<util:map id="asyncConnectorDaoMap1" map-class="java.util.LinkedHashMap">
<entry key="ACCOUNT_MANAGEMENT_CONTROLLER" value-ref="core.commons.AsyncConnectorDao"></entry>
<entry key="CUSTOMER_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
<entry key="ACCOUNT_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
<entry key="LOCATION_SERVICE" value-ref="core.commons.AsyncConnectorDao"></entry>
解决方法:
您是否尝试先创建地图,然后将其作为参考传递.
<util:map id="p:asyncConnectorDaoMap" map-class="java.util.LinkedHashMap">
<entry key="ACCOUNT_MANAGEMENT_CONTROLLER" value-ref="asyncConnectorDao"/>
<entry key="CUSTOMER_SERVICE" value-ref="asynConnectorService"/
</util:map>
<bean id="asyncConnectorDao" class="core.commons.AsyncConnectorDao" />
<bean id="asynConnectorService" class="core.commons.AsyncConnectorService" />
<bean id="fulfillment.management.AsyncConnectorFactory" class="com.service.async.AsyncConnectorFactory">
<property name="asyncConnectorDaoMap" ref="asyncConnectorDaoMap"/>
</bean>
确保已创建DAO和服务bean.考虑使用MapFactoryBean
使用模式,以使用util
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
内容总结
以上是互联网集市为您收集整理的java – Spring注入地图问题全部内容,希望文章能够帮你解决java – Spring注入地图问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。