spring bean:好的XML 数据结构很多类?

spring bean: good XML data structure for many classes?

我正在使用 Java Spring Bean 进行演示。我有一个结构在applicationContext.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...
 //

我想知道是否有更好的解决方案,数据结构。可能是我可以将所有传输放在一个 Bean 中而不是一长串 Bean 中的东西。感谢任何建议!

其实你没有很多class。您有很多相同的实例 class...

您所做的并没有什么不好的,只是因为您需要 8 个相同的 class 实例,但仅用于演示。

如果您想将它们组合成一个 "holder" bean 作为集合(数组、列表、集合、映射...),您可以创建自己的 class(即 bank.AllTransfers) 与 属性 作为任何集合(数组、列表、集合、映射)并定义另一个 bean,如

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

另请查看 Spring Util 包(命名空间为 http://www.springframework.org/schema/util)。有一堆元素可以在没有另一个包装器 bean 的情况下做同样的事情,比如:

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

在那种情况下,您将只有一个 class java.util.ArrayList 的 bean,您可以从另一个 bean 中引用,即

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

对于这些示例,您必须保留 8 个 bean 定义 "as is"。 当然,您可以将它们放在 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 个 beans 构造(不是来自数据库,外部 .properties 文件......)你无论如何都必须定义它们。