public class QualifierAnnotationAutowireCandidateResolver extends GenericTypeAwareAutowireCandidateResolver
AutowireCandidateResolver implementation that matches bean definition qualifiers
against qualifier annotations on the field or parameter to be autowired.
Also supports suggested expression values through a value annotation.
Also supports JSR-330's Qualifier annotation, if available.
AutowireCandidateQualifier,
Qualifier,
Value| 构造器和说明 |
|---|
QualifierAnnotationAutowireCandidateResolver()
Create a new QualifierAnnotationAutowireCandidateResolver
for Spring's standard
Qualifier annotation. |
QualifierAnnotationAutowireCandidateResolver(Class<? extends Annotation> qualifierType)
Create a new QualifierAnnotationAutowireCandidateResolver
for the given qualifier annotation type.
|
QualifierAnnotationAutowireCandidateResolver(Set<Class<? extends Annotation>> qualifierTypes)
Create a new QualifierAnnotationAutowireCandidateResolver
for the given qualifier annotation types.
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addQualifierType(Class<? extends Annotation> qualifierType)
Register the given type to be used as a qualifier when autowiring.
|
protected boolean |
checkQualifier(BeanDefinitionHolder bdHolder,
Annotation annotation,
TypeConverter typeConverter)
Match the given qualifier annotation against the candidate bean definition.
|
protected boolean |
checkQualifiers(BeanDefinitionHolder bdHolder,
Annotation[] annotationsToSearch)
Match the given qualifier annotations against the candidate bean definition.
|
protected Object |
extractValue(org.springframework.core.annotation.AnnotationAttributes attr)
Extract the value attribute from the given annotation.
|
protected Object |
findValue(Annotation[] annotationsToSearch)
Determine a suggested value from any of the given candidate annotations.
|
protected Annotation |
getFactoryMethodAnnotation(RootBeanDefinition bd,
Class<? extends Annotation> type) |
protected Annotation |
getQualifiedElementAnnotation(RootBeanDefinition bd,
Class<? extends Annotation> type) |
Object |
getSuggestedValue(DependencyDescriptor descriptor)
Determine whether the given dependency declares a value annotation.
|
boolean |
isAutowireCandidate(BeanDefinitionHolder bdHolder,
DependencyDescriptor descriptor)
Determine whether the provided bean definition is an autowire candidate.
|
protected boolean |
isQualifier(Class<? extends Annotation> annotationType)
Checks whether the given annotation type is a recognized qualifier type.
|
boolean |
isRequired(DependencyDescriptor descriptor)
Determine whether the given dependency declares an autowired annotation,
checking its required flag.
|
void |
setValueAnnotationType(Class<? extends Annotation> valueAnnotationType)
Set the 'value' annotation type, to be used on fields, method parameters
and constructor parameters.
|
checkGenericTypeMatch, getBeanFactory, getResolvedDecoratedDefinition, getReturnTypeForFactoryMethod, setBeanFactorygetLazyResolutionProxyIfNecessarypublic QualifierAnnotationAutowireCandidateResolver()
public QualifierAnnotationAutowireCandidateResolver(Class<? extends Annotation> qualifierType)
qualifierType - the qualifier annotation to look forpublic QualifierAnnotationAutowireCandidateResolver(Set<Class<? extends Annotation>> qualifierTypes)
qualifierTypes - the qualifier annotations to look forpublic void addQualifierType(Class<? extends Annotation> qualifierType)
This identifies qualifier annotations for direct use (on fields, method parameters and constructor parameters) as well as meta annotations that in turn identify actual qualifier annotations.
This implementation only supports annotations as qualifier types.
The default is Spring's Qualifier annotation which serves
as a qualifier for direct use and also as a meta annotation.
qualifierType - the annotation type to registerpublic void setValueAnnotationType(Class<? extends Annotation> valueAnnotationType)
The default value annotation type is the Spring-provided
Value annotation.
This setter property exists so that developers can provide their own (non-Spring-specific) annotation type to indicate a default value expression for a specific argument.
public boolean isAutowireCandidate(BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor)
To be considered a candidate the bean's autowire-candidate attribute must not have been set to 'false'. Also, if an annotation on the field or parameter to be autowired is recognized by this bean factory as a qualifier, the bean must 'match' against the annotation as well as any attributes it may contain. The bean definition must contain the same qualifier or match by meta attributes. A "value" attribute will fallback to match against the bean name or an alias if a qualifier or attribute does not match.
isAutowireCandidate 在接口中 AutowireCandidateResolverisAutowireCandidate 在类中 GenericTypeAwareAutowireCandidateResolverbdHolder - the bean definition including bean name and aliasesdescriptor - the descriptor for the target method parameter or fieldQualifierprotected boolean checkQualifiers(BeanDefinitionHolder bdHolder, Annotation[] annotationsToSearch)
protected boolean isQualifier(Class<? extends Annotation> annotationType)
protected boolean checkQualifier(BeanDefinitionHolder bdHolder, Annotation annotation, TypeConverter typeConverter)
@Nullable protected Annotation getQualifiedElementAnnotation(RootBeanDefinition bd, Class<? extends Annotation> type)
@Nullable protected Annotation getFactoryMethodAnnotation(RootBeanDefinition bd, Class<? extends Annotation> type)
public boolean isRequired(DependencyDescriptor descriptor)
isRequired 在接口中 AutowireCandidateResolverisRequired 在类中 SimpleAutowireCandidateResolverdescriptor - the descriptor for the target method parameter or fieldAutowired.required()@Nullable public Object getSuggestedValue(DependencyDescriptor descriptor)
getSuggestedValue 在接口中 AutowireCandidateResolvergetSuggestedValue 在类中 SimpleAutowireCandidateResolverdescriptor - the descriptor for the target method parameter or fieldnull if none foundValue@Nullable protected Object findValue(Annotation[] annotationsToSearch)
protected Object extractValue(org.springframework.core.annotation.AnnotationAttributes attr)