我可以使用Spring做這在我的applicationContext(3.0.5):可以創建HashMap中使用Spring,但不能創建地圖
<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中]找到的依賴性[圖 與值java.lang.String類型]:在預期至少有1個bean,其中 有資格作爲此依賴關係的自動導向候選。依賴 註解: {@ org.springframework.beans.factory.annotation.Autowired(所需=真), @ org.springframework.beans.factory.annotation.Qualifier(值=地圖)}
我問題是:爲什麼我無法使用接口自動裝配我的地圖?
謝謝。
沒有地圖的一個bean ID,這就是混亂 – NimChimpsky
真正的問題是:一個地圖不應該是一個Spring bean在所有第一個地方。服務應該是bean,數據不應該。如果你真的想要一個地圖bean,創建一個包含地圖並注入地圖的bean。 –
@SeanPatrickFloyd爲什麼不可以注入任何東西並獲得好處。那裏沒有負面影響? (假設你給它一個描述性的名字) – NimChimpsky