我可以在我的 applicationContext 中使用 Spring (3.0.5) 执行此操作:
<bean id="map" class="java.util.HashMap" scope="prototype" >
<constructor-arg>
<map key-type="java.lang.String" value-type="java.lang.String">
<entry key="Key 1" value="1" />
<entry key="Key 2" value="2" />
</map>
</constructor-arg>
</bean>
在我的控制器中,我可以像这样自动连接我的地图:
@Autowired
@Qualifier("map")
private HashMap<String, String> map;
它工作正常,但如果我这样做:
@Autowired
@Qualifier("map")
private Map<String, String> map;
我明白了:
原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [java.lang.String] 的匹配 bean [值类型为 java.lang.String 的映射]:预计至少有 1 个符合自动装配候选资格的 bean对于这种依赖。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=map)}
我的问题是:为什么我不能用接口自动连接我的地图,而我可以用实现?
谢谢。