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 として登録されます。