2

から同じタイプのすべての Bean を取得しようとしていFileSystemXmlApplicationContextます。

私は使用してfactory.getBeansOfType(SomeType.class)いましたが、トップレベルの Bean のみを返すことに気付きました。ネストされた Bean を含め、特定のタイプのすべての Bean を返すために使用できる他の方法はありますか?

使用例:

<bean name="topLevelBean" class="SomeClass">
    <property name="someProperty">
         <bean bean="nestedBean" class="SomeClass">
    </property>
</bean>

を呼び出すとfactory.getBeansOfType(SomeClass.class)返されますtopLevelBeanが、返されませんnestedBean

のドキュメントにgetBeansOfTypeは、トップレベルの Bean のみが返されると書かれています。

私の質問は次のとおりです。目的のタイプのすべての Bean を返すメソッドはありますか。

4

2 に答える 2

1

BeanPostProcessorインターフェイスを実装し、Spring コンテキスト ファイルに追加することで、すべての Bean にアクセスできます。

于 2013-05-27T11:41:52.017 に答える
0

よくわかりませんが、おそらくBeanFactoryUtils#beansOfTypeInsourcingAncestors()がそれらを返す可能性があります(ドキュメントには記載されていません)。

于 2013-05-27T11:28:36.657 に答える