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 名を示していない場合、最初の 2 文字が大文字でない限り、クラスの短い名前(最初の文字は小文字)に基づいて適切な名前が作成されます。例:
com.xyz.FooServiceImpl -> fooServiceImpl
com.xyz.URLFooServiceImpl -> URLFooServiceImpl
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
)