2017-03-16 74 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文件...),你必须让它们定义。