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