2012-01-27 11 views
0

バーのリストの要素にIDを付ける必要がありますか?spring:リストでbean-nameを省略する方法は?

<list value-type="foo.Bar"> 
    <bean p:p1="someP1Value" p:p2="aP2Value" /> 
</list> 

私は、このために

Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: 
Configuration problem: Unnamed bean definition specifies neither 'class' nor 'parent' 
nor 'factory-bean' - can't generate bean name 

を取得します。

どのようにしてBean IDを省略できますか?

答えて

1

まあ、エラーメッセージはかなり明確です。 <bean/を定義するとき>あなたはclassparent属性を指定する必要があり、次のいずれか

<list> 
    <bean class="foo.Bar" p:p1="someP1ValueA" p:p2="aP2ValueA"/> 
    <bean class="foo.Bar" p:p1="someP1ValueB" p:p2="aP2ValueB"/> 
    <bean class="foo.BarSubclass" p:p1="someP1ValueC" p:p2="aP2ValueC"/> 
</list> 

あなたがclass属性のexceesive使用を避けたい場合は、あなたがparent機能を利用することができます

<bean id="bar" abstract="true" class="foo.Bar"/> 

<list value-type="foo.Bar"> 
    <bean parent="bar" p:p1="someP1ValueA" p:p2="aP2ValueA"/> 
    <bean parent="bar" p:p1="someP1ValueB" p:p2="aP2ValueB"/> 
    <bean parent="bar" p:p1="someP1ValueC" p:p2="aP2ValueC" class="foo.BarSubclass"/> 
</list> 

は何ですかp:p1p:p2名前空間?

+0

よく、私は "value-type"が内部Beanのクラスを定義し、List の型のものをもたらすと考えました。 psはちょうどいくつかのプロパティです。問題は、内側の豆の名前を省略することです。 – Bastl

+0

@Bastl:いいえ、 'value-type'は、明白でないときに型を明示的に定義することだけです。しかし、親のBeanを使用することができます(私の2番目の例を参照)。 –

+0

いいえ、それでも余りにも冗長性があります。 – Bastl

関連する問題