0

prototype通常、スコープを使用してBean をインジェクトすると@Autowired、期待どおりに機能しません。しかし、コードを書いているときに、誤ってプロトタイプを挿入してしまうことはよくあります。

すべてのフィールドとメソッドのリストを取得し、@Autowiredそれを Spring AppContext と照合してこれを確認する方法はありますか?

4

1 に答える 1

1

1 つのアプローチは、org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor(@Autowired、@Inject、@Resource などの処理を担当する) をオーバーライドし、このオーバーライドされた Bean ポスト プロセッサで言及したチェックを実行することです。ただし、AutowiredAnnotationBeanPostProcessor はかなりの数の一般的なカスタム名前空間 (context:component-scanなどcontext:annotation-config) に登録されるため、これらのカスタム アノテーションを対応するbeanバリエーションに置き換える必要があり、オーバーライドされたポスト プロセッサも Bean として登録されます。

于 2012-09-07T12:49:10.570 に答える