0

親プロジェクトからの春の xml 構成を含むプロジェクトがあります。

親プロジェクトの xml ファイルで定義された特定の Bean は必要ありませんが、親プロジェクトを変更したくありません。また、xml ファイルのセット全体を書き直したくありません。

子プロジェクトで特定の Bean のみを除外するにはどうすればよいですか?

もっと具体的に言ってみましょう。親プロジェクトには Bean があります (たとえば)

<bean id = "example" class = "blah />

子プロジェクトでは、xml でこれに似たことができるようにしたいと考えています。子プロジェクトは単にこの Bean を必要としません。

<exclude beanid="example" />
4

1 に答える 1

0

親の Bean を除外することで、子コンテキストで初期化されないようにするか、子コンテキストで何か他のもので上書きする必要がありますか?

前者の場合は、 を実装org.springframework.beans.factory.config.BeanFactoryPostProcessorし、Bean 定義を検索して、その定義で lazy-init を true に設定できます。

後者の場合はorg.springframework.beans.factory.config.BeanPostProcessor、親 Bean を no-op クラスにプロキシすることで、親 Bean の効果をミュートする を実装できます。これを実現する別の (非決定論的な) 方法は、子 Bean に親の名前とまったく同じ名前を付けてから、ログをチェックして、子 Bean の定義が親の定義を上書きしたことを確認することです。コンテキストのインポートを移動します。春の Bean の決定論的順序付けは、SPR-3948で追跡されます。

于 2014-06-11T03:25:30.983 に答える