アノテーションインターフェース 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
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    この値は、自動検出されたコンポーネントの場合に Spring Bean 名に変換される論理コンポーネント名の提案を示す場合があります。
  • 要素の詳細

    • value

      StringSE value
      この値は、自動検出されたコンポーネントの場合に Spring Bean 名に変換される論理コンポーネント名の提案を示す場合があります。
      戻り値:
      推奨されるコンポーネント名(ある場合) (それ以外の場合は空の文字列)
      デフォルト:
      ""