-1

mapping-xml で Spring Bean の 1 つに対して次のマッピングを行っています。次に、junit-test クラスの 1 つで「ClassParent」を @Autowired しようとすると、「org.springframework.beans. factory.NoSuchBeanDefinitionException: タイプ [org.springframework.batch.item.file.mapping.DefaultLineMapper] の一意の Bean が定義されていません: 単一の一致する Bean が予想されますが、3 が見つかりました"

マッピングは次のとおりです。

<bean id="ClassParent"
        class="org.springframework.batch.item.file.mapping.PatternMatchingCompositeLineMapper">
        <property name="tokenizers">
            <map>
                <entry key="D*" value-ref="ClassC" />
                <entry key="T*" value-ref="ClassD" />
            </map>
        </property>
        <property name="fieldSetMappers">
            <map>
                <entry key="D*" value-ref="ClassA" />
                <entry key="T*" value-ref="ClassB" />
            </map>
        </property>
    </bean>

Bean「ClassParent」を自動配線する方法を教えてください。

4

1 に答える 1

2

注入された Bean 定義を見つけようとし、3 つの Bean を見つけます。リソース アノテーションで name 属性を指定し、その特定のインスタンスで注入する Bean の ID を name 属性で指定する必要があります。

@Resouce(name="classparentId")
@Autowired

Autowiring の問題と固有の Bean がないことを参照してください

于 2012-04-12T15:30:10.867 に答える