2
在Java語言中,可以創建TreeMaps using our own Comparator類。現在,我想創建一個該映射並將其分配給我的一個bean。我也事先知道地圖的價值,我有興趣讓Spring注入它們。問題是,地圖類型是否可以聲明,使用構造函數參數構建(我需要它通過Comparator
類)並使用Spring進行值注入?Spring使用自定義比較器創建TreeMap並填充它
這種聲明的工作,但沒有任何價值可在以後注入:
<bean id="antennaFilteringManagerMap" class="java.util.TreeMap">
<constructor-arg ref="nameComparator" />
</bean>
<bean id="nameComparator" class="com.tadic.model.detector.Antenna.NameComparator" />
在另一方面,如果我使用Spring地圖實用程序,there are some ways來指定地圖的課,但構造ARG無法通過:
<bean class="org.springframework.beans.factory.config.MapFactoryBean">
<property name="targetMapClass">
<value>java.util.TreeMap</value>
</property>
<property name="sourceMap">
<map>
<entry key-ref="antenna1" value-ref="locationEventFilteringManager1" />
</map>
</property>
</bean>
OR
<util:map map-class="java.util.TreeMap">
<entry key-ref="antenna1" value-ref="locationEventFilteringManager1" />
</util:map>
你能解釋一下,「這種聲明有效,但以後沒有價值可以注入」?你如何試圖注入? –
因此,我的意思是沒有''標籤可以放入bean中。我希望兩者都用'constructor-arg'構造'TreeMap',並使用''標籤在其上注入引用的bean。 –
您可以獲取bean引用並添加到您的java代碼中。否則,如果您想在xml文件中執行此操作,請僅使用util命名空間,如上例所示。 –