2010-12-15 13 views
9

プロジェクトでSpringを使用し、XML内のBeanを定義しているとします。そしてコンストラクタでMapを受け入れるBeanをいくつか持っています。マッププロパティを別のXMLファイル(Spring)で定義する方法は?

通常、このマップはBeanの下のプロパティとして定義され、その下にエントリがあります。

しかし、エントリリストが巨大な場合はどうなりますか?それはXMLの大きな時間を膨らませるでしょう...

XMLファイルに何らかの形で定義されていて、それを必要とするBeanによってrefferencedできますか?どうやって ?

答えて

14

はい、<util:map>構文(docsを参照)を使用してください。

beans1.xml

<util:map id="myMap"> 
    <entry .../> 
    <entry .../> 
    <entry .../> 
    <entry .../> 
</util:map> 

beans2.xml

<import resource="beans1.xml"/> 

<bean id="..." class="..."> 
    <constructor-arg ref="myMap"/> 
</bean> 
+0

:しかし、セットアップXML名前空間に、beans1.xmlは次のようになりますか? (マップを表す別のBeanクラスで、ELで項目を挿入するためのアノテーションが付けられています) – Belun

3

skaffmanの答えは私のために働きました。私は同じですが、注釈およびSpeIで行うことができます

<?xml version="1.0" encoding="UTF-8"?> 
<util:map id="myMap" 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util.xsd"> 

    <entry key="myKey" value="myValue" /> 

</util:map> 
関連する問題