public class AnnotationBeanNameGenerator extends ObjectSE implements BeanNameGenerator
@Component
アノテーションまたはそれ自体がメタアノテーションとして @Component
でアノテーションされた別のアノテーションでアノテーションが付けられた Bean クラスの BeanNameGenerator
実装。例: Spring のステレオタイプアノテーション(@Repository
など)自体は @Component
でアノテーションされています。 可能な場合は、Java EE 6 の ManagedBean
SE および JSR-330 の Named
EE アノテーションもサポートします。Spring コンポーネントアノテーションは、常にこのような標準アノテーションをオーバーライドすることに注意してください。
アノテーションの値が Bean 名を示さない場合、適切な名前がクラスの短い名前に基づいて構築されます(最初の文字は小文字)。例:
com.xyz.FooServiceImpl -> fooServiceImpl
Component.value()
, Repository.value()
, Service.value()
, Controller.value()
, Named.value()
EE, FullyQualifiedAnnotationBeanNameGenerator
修飾子と型 | フィールドと説明 |
---|---|
static AnnotationBeanNameGenerator | INSTANCE コンポーネントのスキャン目的で使用される、デフォルトの AnnotationBeanNameGenerator インスタンスの便利な定数。 |
コンストラクターと説明 |
---|
AnnotationBeanNameGenerator() |
修飾子と型 | メソッドと説明 |
---|---|
protected StringSE | buildDefaultBeanName(BeanDefinition definition) 指定された Bean 定義からデフォルトの Bean 名を導出します。 |
protected StringSE | buildDefaultBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) 指定された Bean 定義からデフォルトの Bean 名を導出します。 |
protected StringSE | determineBeanNameFromAnnotation(AnnotatedBeanDefinition annotatedDef) クラスのいずれかのアノテーションから Bean 名を派生させます。 |
StringSE | generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) 指定された Bean 定義の Bean 名を生成します。 |
protected boolean | isStereotypeWithNameValue(StringSE annotationType, SetSE<StringSE> metaAnnotationTypes, MapSE<StringSE, ObjectSE> attributes) 指定されたアノテーションが、そのアノテーション value() を介してコンポーネント名を提案できるステレオタイプであるかどうかを確認します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final AnnotationBeanNameGenerator INSTANCE
AnnotationBeanNameGenerator
インスタンスの便利な定数。public StringSE generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry)
BeanNameGenerator
BeanNameGenerator
の generateBeanName
definition
- 名前を生成する Bean 定義 registry
- 指定された定義が登録されることになっている Bean 定義レジストリ @Nullable protected StringSE determineBeanNameFromAnnotation(AnnotatedBeanDefinition annotatedDef)
annotatedDef
- アノテーション対応の Bean 定義 null
protected boolean isStereotypeWithNameValue(StringSE annotationType, SetSE<StringSE> metaAnnotationTypes, @Nullable MapSE<StringSE,ObjectSE> attributes)
value()
を介してコンポーネント名を提案できるステレオタイプであるかどうかを確認します。annotationType
- チェックするアノテーションクラスの名前 metaAnnotationTypes
- 指定されたアノテーションのメタアノテーションの名前 attributes
- 指定されたアノテーションの属性のマップ protected StringSE buildDefaultBeanName(BeanDefinition definition, BeanDefinitionRegistry registry)
デフォルトの実装は buildDefaultBeanName(BeanDefinition)
に委譲します。
definition
- Bean 名を作成する Bean 定義 registry
- 指定された Bean 定義が登録されているレジストリ null
)protected StringSE buildDefaultBeanName(BeanDefinition definition)
デフォルトの実装では、短いクラス名の小文字バージョンが単純に構築されます。例: "mypackage.MyJdbcDao" -> "myJdbcDao"。
内部クラスの名前は "outerClassName.InnerClassName" の形式になりますが、名前にピリオドが含まれているため、名前でオートワイヤーする場合は問題が発生する可能性があることに注意してください。
definition
- Bean 名を作成する Bean 定義 null
)