Spring (3.0.5) を使用して applicationContext でこれを行うことができます。
<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 のマップ]: autowire 候補として適格な少なくとも 1 つの Bean が必要ですこの依存関係のために。依存関係アノテーション: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=map)}
私の質問は次のとおりです。実装ではできるのに、インターフェイスでマップを自動配線できないのはなぜですか?
ありがとう。