@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface Scope
@Component
と組み合わせて型レベルのアノテーションとして使用する場合、@Scope
はアノテーション付きの型のインスタンスに使用するスコープの名前を示します。@Bean
と共にメソッドレベルのアノテーションとして使用される場合、@Scope
は、メソッドから返されるインスタンスに使用するスコープの名前を示します。
注意 : @Scope
アノテーションは、具体的な Bean クラス(アノテーション付きコンポーネントの場合)またはファクトリメソッド(@Bean
メソッドの場合)でのみイントロスペクトされます。XML Bean 定義とは対照的に、Bean 定義の継承という概念はなく、クラスレベルの継承階層はメタデータの目的には関係ありません。
このコンテキストでは、スコープとは、singleton
、prototype
などのインスタンスのライフサイクルを意味します。Spring ですぐに提供されるスコープは、ConfigurableBeanFactory
および WebApplicationContext
インターフェースで使用可能な SCOPE_*
定数を使用して参照できます。
追加のカスタムスコープを登録するには、CustomScopeConfigurer
を参照してください。
修飾子と型 | オプションの要素と説明 |
---|---|
ScopedProxyMode | proxyMode コンポーネントをスコープ付きプロキシとして構成する必要があるかどうかを指定します。構成する場合は、プロキシをインターフェースベースにするかサブクラスベースにするかを指定します。 |
StringSE | scopeName アノテーション付きコンポーネント / Bean に使用するスコープの名前を指定します。 |
StringSE | value scopeName() のエイリアス。 |
@AliasFor(value="scopeName") public abstract StringSE value
scopeName()
のエイリアス。scopeName()
@AliasFor(value="value") public abstract StringSE scopeName
デフォルトは、SCOPE_SINGLETON
を意味する空の文字列(""
)です。
ConfigurableBeanFactory.SCOPE_PROTOTYPE
, ConfigurableBeanFactory.SCOPE_SINGLETON
, WebApplicationContext.SCOPE_REQUEST
, WebApplicationContext.SCOPE_SESSION
, value()
public abstract ScopedProxyMode proxyMode
デフォルトは ScopedProxyMode.DEFAULT
です。これは通常、コンポーネントのスキャン命令レベルで別のデフォルトが構成されていない限り、スコープ付きプロキシを作成しないことを示します。
Spring XML の <aop:scoped-proxy/>
サポートに類似しています。
ScopedProxyMode