public class AnnotationScopeMetadataResolver extends java.lang.Object implements ScopeMetadataResolver
ScopeMetadataResolver
implementation that by default checks for
the presence of Spring's @Scope
annotation on the bean class.
The exact type of annotation that is checked for is configurable via
setScopeAnnotationType(Class)
.
Scope
Modifier and Type | Field and Description |
---|---|
protected java.lang.Class<? extends java.lang.annotation.Annotation> |
scopeAnnotationType |
Constructor and Description |
---|
AnnotationScopeMetadataResolver()
Construct a new
AnnotationScopeMetadataResolver . |
AnnotationScopeMetadataResolver(ScopedProxyMode defaultProxyMode)
Construct a new
AnnotationScopeMetadataResolver using the
supplied default ScopedProxyMode . |
Modifier and Type | Method and Description |
---|---|
ScopeMetadata |
resolveScopeMetadata(BeanDefinition definition)
Resolve the
ScopeMetadata appropriate to the supplied
bean definition . |
void |
setScopeAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotationType)
Set the type of annotation that is checked for by this
AnnotationScopeMetadataResolver . |
protected java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotationType
public AnnotationScopeMetadataResolver()
AnnotationScopeMetadataResolver
.public AnnotationScopeMetadataResolver(ScopedProxyMode defaultProxyMode)
AnnotationScopeMetadataResolver
using the
supplied default ScopedProxyMode
.defaultProxyMode
- the default scoped-proxy modepublic void setScopeAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotationType)
AnnotationScopeMetadataResolver
.scopeAnnotationType
- the target annotation typepublic ScopeMetadata resolveScopeMetadata(BeanDefinition definition)
ScopeMetadataResolver
ScopeMetadata
appropriate to the supplied
bean definition
.
Implementations can of course use any strategy they like to
determine the scope metadata, but some implementations that spring
immediately to mind might be to use source level annotations
present on the class
of the
supplied definition
, or to use metadata present in the
AttributeAccessor.attributeNames()
of the supplied definition
.
resolveScopeMetadata
in interface ScopeMetadataResolver
definition
- the target bean definitionnull