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

时间:2017-03-16 11:14:40

标签: java spring javabeans

我正在使用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而不是一长串Beans中的东西。感谢任何建议!

1 个答案:

答案 0 :(得分:0)

实际上你没有很多课程。你有很多同一个类的实例......

你做了什么并没有什么不好,只是因为你需要8个同一个类的实例,只有不同的值才能用于演示。

如果您想将它们合并为一个&#34;持有者&#34; bean作为集合(数组,列表,集合,映射...)您可以使用属性作为任何集合(数组,列表,集合,映射)创建自己的类(即bank.AllTransfers)并定义另一个类似

<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>

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

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

对于这些示例,您必须保留8个bean定义&#34;按原样#34;。 当然,您可以将它们放在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构造(而不是从DB,外部.properties文件...),则必须始终定义它们。