【发布时间】:2012-12-04 12:35:43
【问题描述】:
我在 spring 中这样定义了一张地图:
<util:map id="AdditionalParams" scope="prototype" map-class="java.util.HashMap"
key-type="java.lang.String" value-type="java.lang.String">
<entry key="Start" value="12345" />
<entry key="Finish" value="12365" />
</util:map>
然后我将此 bean 自动装配到定义为的属性:
private @Autowired @Qualifier(value = "AdditionalParams") Map<String, String> additionalParams;
执行此操作时,会抛出异常:
原因:org.springframework.beans.factory.BeanCreationException:创建名为“DutyCreator”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 java.util.Map DutyCreator.additionalParams;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项 [map with value type java.lang.String] 找到类型为 [java.lang.String] 的匹配 bean:预计至少有 1 个符合自动装配候选资格的 bean对于这种依赖。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=AdditionalParams)}
原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项 [map with value type java.lang.String] 找到类型为 [java.lang.String] 的匹配 bean:预计至少有 1 个符合条件的 bean作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=AdditionalParams)}
有什么想法吗?
干杯。
【问题讨论】:
-
请分享您的应用上下文文件。
-
你也可以使用
<util:map>xml配置