|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.context.annotation.Jsr330ScopeMetadataResolver
public class Jsr330ScopeMetadataResolver
Simple ScopeMetadataResolver
implementation that follows JSR-330 scoping rules:
defaulting to prototype scope unless javax.inject.Singleton
is present.
This scope resolver can be used with ClassPathBeanDefinitionScanner
and
AnnotatedBeanDefinitionReader
for standard JSR-330 compliance. However,
in practice, you will typically use Spring's rich default scoping instead - or extend
this resolver with custom scoping annotations that point to extended Spring scopes.
registerScope(java.lang.Class, java.lang.String)
,
resolveScopeName(java.lang.String)
,
ClassPathBeanDefinitionScanner.setScopeMetadataResolver(org.springframework.context.annotation.ScopeMetadataResolver)
,
AnnotatedBeanDefinitionReader.setScopeMetadataResolver(org.springframework.context.annotation.ScopeMetadataResolver)
Field Summary | |
---|---|
private java.util.Map<java.lang.String,java.lang.String> |
scopeMap
|
Constructor Summary | |
---|---|
Jsr330ScopeMetadataResolver()
|
Method Summary | |
---|---|
void |
registerScope(java.lang.Class annotationType,
java.lang.String scopeName)
Register an extended JSR-330 scope annotation, mapping it onto a specific Spring scope by name. |
void |
registerScope(java.lang.String annotationType,
java.lang.String scopeName)
Register an extended JSR-330 scope annotation, mapping it onto a specific Spring scope by name. |
ScopeMetadata |
resolveScopeMetadata(BeanDefinition definition)
Resolve the ScopeMetadata appropriate to the supplied
bean definition . |
protected java.lang.String |
resolveScopeName(java.lang.String annotationType)
Resolve the given annotation type into a named Spring scope. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private final java.util.Map<java.lang.String,java.lang.String> scopeMap
Constructor Detail |
---|
public Jsr330ScopeMetadataResolver()
Method Detail |
---|
public final void registerScope(java.lang.Class annotationType, java.lang.String scopeName)
annotationType
- the JSR-330 annotation type as a ClassscopeName
- the Spring scope namepublic final void registerScope(java.lang.String annotationType, java.lang.String scopeName)
annotationType
- the JSR-330 annotation type by namescopeName
- the Spring scope nameprotected java.lang.String resolveScopeName(java.lang.String annotationType)
The default implementation simply checks against registered scopes. Can be overridden for custom mapping rules, e.g. naming conventions.
annotationType
- the JSR-330 annotation type
public 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 definition
null
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |