アノテーションインターフェース Component
このようなクラスは、アノテーションベースの構成およびクラスパススキャンを使用する場合、自動検出の候補とみなされます。
コンポーネントは、このアノテーションの value
属性を介して論理コンポーネント名をオプションで指定できます。
他のクラスレベルのアノテーションも、コンポーネント (通常は特殊な種類のコンポーネント) を識別するとみなされる場合があります。たとえば、@Repository
アノテーションや AspectJ の @Aspect
アノテーションなどです。ただし、@Aspect
アノテーションによって、クラスが自動的にクラスパススキャンの対象となるわけではないことに注意してください。
@Component
でアノテーションが付けられたアノテーションメタはすべて、アノテーションが付けられたクラスをクラスパススキャンの対象にするステレオタイプアノテーションと見なされます。例: @Service
、@Controller
、@Repository
はステレオタイプのアノテーションです。ステレオタイプアノテーションは、@AliasFor
を介してこのアノテーションの value()
属性をオーバーライドすることによって、論理コンポーネント名の構成をサポートすることもできます。
Spring Framework 6.1 の時点で、規則により (つまり、@AliasFor
を使用せずに String value()
属性を介して) ステレオタイプコンポーネントの名前を構成するためのサポートは非推奨となり、フレームワークの将来のバージョンでは削除される予定です。カスタムステレオタイプアノテーションは、@AliasFor
を使用して、このアノテーションの value()
属性の明示的なエイリアスを宣言する必要があります。具体的な例については、Repository.value()
および ControllerAdvice.name()
のソースコード宣言を参照してください。
- 導入:
- 2.5
- 作成者:
- Mark Fisher, Sam Brannen
- 関連事項:
オプション要素の概要
オプション要素
要素の詳細
value
StringSE valueこの値は、自動検出されたコンポーネントの場合に Spring Bean 名に変換される論理コンポーネント名の提案を示す場合があります。- 戻り値:
- 推奨されるコンポーネント名(ある場合) (それ以外の場合は空の文字列)
- デフォルト:
- ""