対 : 違いを明確にする
一方、および どちらもアノテーションを処理しますが、機能には顕著な違いがあります。
- アプリケーション コンテキストにすでに登録されている Bean に定義されたアノテーションを有効にします。
- Bean のパッケージをスキャンしません
- の機能を組み合わせます。パッケージをスキャンし、アプリケーション コンテキスト内で Bean を登録します。
- アノテーション ベースの Bean 定義をサポートします。
違いを示す例
それぞれの異なる役割を示すためこれらのタグについては、次のシナリオを検討してください:
同様の機能
アプローチは異なりますが、および 同様の目標を達成します。
- アノテーションベースの Bean 定義のアクティブ化
- アノテーション処理のための Bean ポストプロセッサの登録
相互運用性と推奨事項
両方のタグは個別に使用できますが、同じ XML 内に共存することもできます設定:
- If が存在する場合、それは の使用を意味します。アプリケーションコンテキスト内に登録されているすべての Bean に対して。これにより、スキャンされた Bean と手動で登録された Bean の両方に対するアノテーションのサポートが保証されます。
- を使用する場合、両方のタグを含める必要はありません。アノテーション処理とパッケージ スキャンの両方をカバーしているためです。
追加の考慮事項
- の "annotation-config" 属性
-
- の複数のインスタンスは、実際には使用されないレガシー機能です。および
Spring は、アノテーション処理セットアップを処理して、複数の Bean が登録されている場合でも、確実に 1 回だけ実行されるようにします。
以上が「 vs. 」: 主な違いは何ですか? それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。