コンポーネントの次の依存関係ツリーを使用して、単純なアプリを作成しました。
Service1 injects Service2(via constructor)
Service2 injects SomeContext(via setter)
SomContext injects Service1(via setter)
Advisor is for Service1
そのため、Spring が Service1 または Service2 を構築しようとすると、自動的にアドバイスを適用しようとしますが、Spring には isCurrentlyInCreation (BeanFactoryAdvisorRetrievalHelper.java 内) のチェックがあるため、アドバイスを適用しようとする Bean はまだ作成されており、アドバイスの適用をスキップします。 .
Bean の再帰が設計の悪い方法であることはわかっていますが、現在分離してリファクタリングするのは困難です。
SomeContext の factorybean の助けを借りてこの問題を修正し、必要に応じて applicationcontext(applicationcontextaware) を介して Service1 をロードしますが、誰かがより良い解決策を知っているでしょうか?