Top Description Methods
org.springframework.context.annotation

public @Interface Scope

extends Annotation
Annotations
@Target:TYPE, METHOD
@Retention:RUNTIME
@Documented
Imports
java.lang.annotation.Documented, .ElementType, .Retention, .RetentionPolicy, .Target, org.springframework.beans.factory.config.ConfigurableBeanFactory, org.springframework.core.annotation.AliasFor

When used as a type-level annotation in conjunction with @Component, @Scope indicates the name of a scope to use for instances of the annotated type.

When used as a method-level annotation in conjunction with @Bean, @Scope indicates the name of a scope to use for the instance returned from the method.

Note

@Scope annotations are only introspected on the concrete bean class (for annotated components) or the factory method (for @Bean methods). In contrast to XML bean definitions, there is no notion of bean definition inheritance, and inheritance hierarchies at the class level are irrelevant for metadata purposes.

In this context, scope means the lifecycle of an instance, such as singleton, prototype, and so forth. Scopes provided out of the box in Spring may be referred to using the SCOPE_* constants available in the ConfigurableBeanFactory and WebApplicationContext interfaces.

To register additional custom scopes, see CustomScopeConfigurer.

Authors
Mark Fisher, Chris Beams, Sam Brannen
Since
2.5
See Also
org.springframework.stereotype.Component, org.springframework.context.annotation.Bean

Method Summary

Modifier and TypeMethod and Description
public ScopedProxyMode
proxyMode()

Specifies whether a component should be configured as a scoped proxy and if so, whether the proxy should be interface-based or subclass-based.

public String
scopeName()

Specifies the name of the scope to use for the annotated component/bean.

public String
value()

Alias for scopeName.

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString

Method Detail

proxyModeback to summary
public ScopedProxyMode proxyMode()

Specifies whether a component should be configured as a scoped proxy and if so, whether the proxy should be interface-based or subclass-based.

Defaults to ScopedProxyMode#DEFAULT, which typically indicates that no scoped proxy should be created unless a different default has been configured at the component-scan instruction level.

Analogous to <aop:scoped-proxy/> support in Spring XML.

See Also
ScopedProxyMode
scopeNameback to summary
public String scopeName()

Specifies the name of the scope to use for the annotated component/bean.

Defaults to an empty string ("") which implies SCOPE_SINGLETON.

Annotations
@AliasFor:value
Since
4.2
See Also
ConfigurableBeanFactory#SCOPE_PROTOTYPE, ConfigurableBeanFactory#SCOPE_SINGLETON, org.springframework.web.context.WebApplicationContext#SCOPE_REQUEST, org.springframework.web.context.WebApplicationContext#SCOPE_SESSION, value
valueback to summary
public String value()

Alias for scopeName.

Annotations
@AliasFor:scopeName
See Also
scopeName