我使用Spring 3.0.4。我有一些在地圖上使用@Autowired註釋的bean。這些映射是在application-context.xml文件中定義的(因爲這些映射是使用多種工廠方法構建的)。自動裝配映射不按預期工作
當我使用我的調試器時,我可以看到使用正確的(預期的)bean id構造映射。但是,一旦自動裝配過程開始,它聲稱它找不到具有剛剛創建的id的bean。
一段代碼:
@Autowired
@Qualifier("dienstverbandMap")
private Map<String, String> dienstverbandMap;
上下文XML的海賊王:
<bean class="java.util.HashMap" id="dienstverbandMap" factory-bean="someFactoryMethod" factory-method="getMappedMap"/>
重要的細節,當我改變類型java.lang.Object中在我的課和上下文XML它既確實有線事實上,我可以將其轉換爲我的代碼中的HashMap,並讓所有的東西都能正常工作。但那不是我想要的。
任何人都得到了解釋我做錯了什麼?
你說得對。我的工廠方法簽名返回Map <>,當我將其更改爲HashMap時,所有內容都開始工作。謝謝!! :) – 2011-02-09 10:51:23
我想,工廠實現了一個強制返回類型爲Map(或更具體)的接口。然而,即使這樣也行不通。我必須改變界面才能使這個工作。 Yuk :) – 2011-02-09 12:28:56