春のアプリケーションにいくつかの設定済みの Bean があります。すべての Bean は、機能するはずのとおりに機能し、仕事をしています。
問題は、私は を実装しましたがBeanPostProcessor
、一部の Bean に対して呼び出されていないことに気付きました (どちらpostProcessAfterInitialization
でもないpostProcessBeforeInitialization
)。原因は何ですか?
関連性があるかどうかはわかりませんが、リファレンスマニュアルには次のように書かれています。
BeanPostProcessorsとAOP自動プロキシ
BeanPostProcessorインターフェースを実装するクラスは特別であるため、コンテナーによって異なる方法で処理されます。すべてのBeanPostProcessorsとその直接参照されるBeanは、ApplicationContextの特別な起動フェーズの一部として起動時にインスタンス化され、その後、すべてのBeanPostProcessorsがソートされた方法で登録され、それ以降のすべてのBeanに適用されます。AOP自動プロキシはBeanPostProcessor自体として実装されているため、BeanPostProcessorまたは直接参照されるBeanは自動プロキシの対象にはなりません(したがって、アスペクトが「織り込まれている」ことはありません。
このようなBeanの場合、情報ログメッセージが表示されます。「Bean'foo'は、すべてのBeanPostProcessorsによる処理の対象ではありません(例:自動プロキシの対象ではありません)」。
だから、多分あなたの豆はプロキシされています。