2017-03-16 75 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... 
// 

我想知道是否有更好的解決方案,數據結構這一點。可能是我可以將所有Transfers放在一個Bean中,而不是一長串Bean。 Thx任何建議!

+0

這聽起來像是一個數據庫的工作。 – chrylis

+0

爲什麼你很難在xml中編碼值? –

+0

這只是一個演示,爲什麼我不使用數據庫。有最大值。 8條記錄。因爲我對春天很新奇,我認爲可能會有更好的解決方案。無論如何thx! – johnboy

回答

0

其實你沒有多少班。你有許多相同類別的實例...

你做了什麼並沒有什麼不好,只是因爲你需要8個具有不同值的同一類的實例,僅用於演示。

如果您想將它們組合成一個「支架」 bean作爲集合(數組,列表,設置,地圖...),你可以創建自己的類(即bank.AllTransfers)以產權爲任何集合(數組,名單,設置,地圖),並定義另一個豆狀

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

而且看看春季util包(命名空間是http://www.springframework.org/schema/util)。有一堆元素做同樣沒有其他包裝豆狀:

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

在這種情況下,你將只有一類的bean java.util.ArrayList你可以引用從另一個豆即

<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上下文中保留你的8個bean構造(而不是從數據庫,外部.properties文件...),你必須讓它們定義。