我正在使用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中的东西。感谢任何建议!
答案 0 :(得分:0)
实际上你没有很多课程。你有很多同一个类的实例......
你做了什么并没有什么不好,只是因为你需要8个同一个类的实例,只有不同的值才能用于演示。
如果您想将它们合并为一个&#34;持有者&#34; bean作为集合(数组,列表,集合,映射...)您可以使用属性作为任何集合(数组,列表,集合,映射)创建自己的类(即bank.AllTransfers
)并定义另一个类似{ p>
<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文件...),则必须始终定义它们。