2017-03-16 12 views
0

私はJava Spring Beanを使ってデモを進めています。私はapplicationContext.xmlに構造体を持っています。次のようなものがあります。spring bean:多くのクラスのための良いXMLデータ構造ですか?

<bean id="Transfer1" class="bank.Transfer"> 
    <property name="id" value="1" /> 
    <property name="firstname" value="Thomas" /> 
    <property name="lastname" value="Bäcker" /> 
    <property name="transferdate" value="2016-11-15" /> 
    <property name="amount" value="300" /> 
</bean> 

<bean id="Transfer2" class="bank.Transfer"> 
    <property name="id" value="2" /> 
    <property name="firstname" value="Bob" /> 
    <property name="lastname" value="Sapp" /> 
    <property name="transferdate" value="2016-12-01" /> 
    <property name="amount" value="2700" /> 
</bean> 
// 
// followed by Transfer3, Transfer4... 
// 

もっと良い解決策があるのか​​どうか、私は疑問に思います。私はすべての転送を1つのBeanに入れて、長いBeanのリストに入れることができます。任意のアドバイスのためのTHX!

+0

これは実際にはデータベースの仕事のようです。 – chrylis

+0

なぜあなたはxmlの値をハードコーディングしていますか? –

+0

それは私がデータベースを使用していない理由のデモです。最高です。 8レコード。私は春にはかなり新しいので、もっと良い解決策があるかもしれないと思っています。とにかくthx! – johnboy

答えて

0

実際にあなたは多くのクラスを持っていません。あなたは同じクラスの多くのインスタンスを持っています...

同じクラスの8つのインスタンスがデモ用に異なる値を必要とするため、何も悪いことはありません。

コレクション(配列、リスト、セット、マップなど)として1つの "ホルダー" Beanに結合したい場合は、プロパティ(コレクション、配列、リスト、セット、マップなど)を持つ独自のクラス(すなわちbank.AllTransfers)リスト、セット、マップ)とも春Utilのパッケージを見てみましょう

<bean id="allTransfers" class="bank.AllTransfers"> 
    <property name="transfersCollection"> 
     <list> 
      <ref bean="Transfer1"/> 
      <ref bean="Transfer2"/> 
     </list> 
    </property> 
</bean> 

のような別のBeanを定義します(名前空間がhttp://www.springframework.org/schema/utilです)。以下のような他のラッパー豆なしで同じことを行うための要素の束があります:あなたは他の豆からに参照できjava.util.ArrayListあなたはクラスのちょうどBeanを持つことになります

その場合
<util:list name="transfersList" list-class="java.util.ArrayList" value-type="bank.Transfer"> 
    <ref bean="Transfer1"> 
    <ref bean="Transfer2"> 
</util:list> 

は用

<bean id="allTransfers" class="bank.AllTransfers"> 
    <property name="transfersCollection"> 
     <ref bean="transfersList"/> 
    </property> 
</bean> 

、すなわちこれらの例では、8つのBean定義を「そのまま」保つ必要があります。もちろん あなたは右のあなたのlistなどにそれらを置くことができます。

<bean id="allTransfers" class="bank.AllTransfers"> 
    <property name="transfersCollection"> 
     <list> 
      <bean id="Transfer1" class="bank.Transfer"> 
      <property name="id" value="1" /> 
      <property name="firstname" value="Thomas" /> 
      ... 
      </bean> 
      <bean id="Transfer2" class="bank.Transfer"> 
       <property name="id" value="2" /> 
       <property name="firstname" value="Bob" /> 
       ... 
      </bean> 
     </list> 
    </property> 
</bean> 

が多く、多くの可能性がある...

PSを。しかし、Springコンテキスト(DB、外部.propertiesファイル...からではありません)であなたの8つのBeanの構築を維持したい場合は、とにかくそれらを定義しなければなりません。

関連する問題