Apache CommonsからMultiKeyMapに出くわしましたが、ダブルキーマップが必要なため、通常のマップを使用する代わりに、SpringフレームワークでMultiKeyMapを使用することに興味があります。SpringフレームワークでMultiKeyMapを使用する方法を知っている人はいますか?
質問する
2252 次
1 に答える
0
MultiKeyMap
確認しませんでしたが、Springにはサポートが組み込まれていないようです。
通常のインターフェイス メソッドMultiKey
で使用するキーとしてインスタンスを構築する必要があります。Map
最も明示的な方法は次のようになります。
<map>
<entry>
<key><bean class="org.apache.commons.collections.keyvalue.MultiKey">
<constructor-arg index="0"><ref bean="KEY_0_REF"/></constructor-arg>
<constructor-arg index="1"><value>KEY_1_VALUE</value></constructor-arg>
</bean></key>
<value>YOUR_VALUE</value>
</entry>
</map>
<map>
要素によって生成される Mapは ではないMultiKeyMap
ため、自分で作成する必要があります。
<bean id="yourMultiKeyMap" class="org.apache.commons.collections.map.MultiKeyMap">
<constructor-arg>
<bean class="org.apache.commons.collections.map.HashedMap">
<constructor-arg>
<map>YOUR_MULTI-KEY_VALUE_PAIRS</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
動作します (Spring 3.0.5 でテスト済み) が、非常に多くの XML を記述する必要があります。
spring-util 名前空間を使用すると、マップ作成部分を次のように減らすことができます。
<beans xmlns:util="http://www.springframework.org/schema/util" ...>
...
<util:map id="yourMultiKeyMap" map-class="org.apache.commons.collections.map.MultiKeyMap">
<entry>
...
</entry>
</u:map>
...
</beans>
MultiKey
インスタンスを作成するより短い方法はありますか?
MultiKeyMap
また、アノテーションを使用して作成したものを Bean として注入できましたが、アノテーションを使用し@Autowired
てマップを注入できなかったことにも注意してください。JSR-250 の注釈を使用する必要がありました。<util:map>
@Autowired
@Resource
于 2011-05-03T22:23:49.740 に答える