prototype通常、スコープを使用してBean をインジェクトすると@Autowired、期待どおりに機能しません。しかし、コードを書いているときに、誤ってプロトタイプを挿入してしまうことはよくあります。
すべてのフィールドとメソッドのリストを取得し、@Autowiredそれを Spring AppContext と照合してこれを確認する方法はありますか?
prototype通常、スコープを使用してBean をインジェクトすると@Autowired、期待どおりに機能しません。しかし、コードを書いているときに、誤ってプロトタイプを挿入してしまうことはよくあります。
すべてのフィールドとメソッドのリストを取得し、@Autowiredそれを Spring AppContext と照合してこれを確認する方法はありますか?
1 つのアプローチは、org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor(@Autowired、@Inject、@Resource などの処理を担当する) をオーバーライドし、このオーバーライドされた Bean ポスト プロセッサで言及したチェックを実行することです。ただし、AutowiredAnnotationBeanPostProcessor はかなりの数の一般的なカスタム名前空間 (context:component-scanなどcontext:annotation-config) に登録されるため、これらのカスタム アノテーションを対応するbeanバリエーションに置き換える必要があり、オーバーライドされたポスト プロセッサも Bean として登録されます。