クラス AnnotationBeanNameGenerator

java.lang.ObjectSE
org.springframework.context.annotation.AnnotationBeanNameGenerator
実装されたすべてのインターフェース:
BeanNameGenerator
既知の直属サブクラス
FullyQualifiedAnnotationBeanNameGenerator

public class AnnotationBeanNameGenerator extends ObjectSE implements BeanNameGenerator
@Component アノテーションまたはそれ自体がメタアノテーションとして @Component でアノテーションされた別のアノテーションでアノテーションが付けられた Bean クラスの BeanNameGenerator 実装。例: Spring のステレオタイプアノテーション(@Repository など)自体は @Component でアノテーションされています。

利用可能な場合は、Jakarta EE の ManagedBeanEE および JSR-330 の NamedEE アノテーション (および Jakarta 以前の javax.annotation.ManagedBean および javax.inject.Named の同等のアノテーション) もサポートします。Spring コンポーネントのアノテーションは、そのような標準のアノテーションを常にオーバーライドすることに注意してください。

アノテーションの値が Bean 名を示していない場合、最初の 2 文字が大文字でない限り、クラスの短い名前 (最初の文字を小文字にしたもの) に基づいて適切な名前が作成されます。例:

com.xyz.FooServiceImpl -> fooServiceImpl
com.xyz.URLFooServiceImpl -> URLFooServiceImpl
導入:
2.5
作成者:
Juergen Hoeller, Mark Fisher, Sam Brannen
関連事項:
  • フィールドの詳細

    • INSTANCE

      public static final AnnotationBeanNameGenerator INSTANCE
      コンポーネントのスキャン目的で使用される、デフォルトの AnnotationBeanNameGenerator インスタンスの便利な定数。
      導入:
      5.2
  • コンストラクターの詳細

    • AnnotationBeanNameGenerator

      public AnnotationBeanNameGenerator()
  • メソッドの詳細

    • generateBeanName

      public StringSE generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry)
      インターフェースからコピーされた説明: BeanNameGenerator
      指定された Bean 定義の Bean 名を生成します。
      次で指定:
      インターフェース BeanNameGeneratorgenerateBeanName 
      パラメーター:
      definition - 名前を生成する Bean 定義
      registry - 指定された定義が登録されることになっている Bean 定義レジストリ
      戻り値:
      生成された Bean 名
    • determineBeanNameFromAnnotation

      @Nullable protected StringSE determineBeanNameFromAnnotation(AnnotatedBeanDefinition annotatedDef)
      クラスのいずれかのアノテーションから Bean 名を派生させます。
      パラメーター:
      annotatedDef - アノテーション対応の Bean 定義
      戻り値:
      Bean 名。見つからない場合は null 
    • isStereotypeWithNameValue

      protected boolean isStereotypeWithNameValue(StringSE annotationType, SetSE<StringSE> metaAnnotationTypes, MapSE<StringSE,ObjectSE> attributes)
      指定されたアノテーションが、value() 属性を通じてコンポーネント名を提案できるステレオタイプであるかどうかを確認します。
      パラメーター:
      annotationType - チェックするアノテーションクラスの名前
      metaAnnotationTypes - 指定されたアノテーションのメタアノテーションの名前
      attributes - 指定されたアノテーションの属性のマップ
      戻り値:
      アノテーションがコンポーネント名を持つステレオタイプとして適格かどうか
    • buildDefaultBeanName

      protected StringSE buildDefaultBeanName(BeanDefinition definition, BeanDefinitionRegistry registry)
      指定された Bean 定義からデフォルトの Bean 名を導出します。

      デフォルトの実装は buildDefaultBeanName(BeanDefinition) に委譲します。

      パラメーター:
      definition - Bean 名を作成する Bean 定義
      registry - 指定された Bean 定義が登録されているレジストリ
      戻り値:
      デフォルトの Bean 名 (非 null)
    • buildDefaultBeanName

      protected StringSE buildDefaultBeanName(BeanDefinition definition)
      指定された Bean 定義からデフォルトの Bean 名を導出します。

      デフォルトの実装では、短いクラス名の大文字と小文字を区別しないバージョンを作成するだけです。"mypackage.MyJdbcDao" → "myJdbcDao"。

      内部クラスは "outerClassName.InnerClassName" の形式の名前を持つことに注意してください。名前でオートワイヤーしている場合、名前のピリオドが課題になる可能性があります。

      パラメーター:
      definition - Bean 名を作成する Bean 定義
      戻り値:
      デフォルトの Bean 名 (非 null)