public final class SingletonScope extends AbstractScope
idToDefinition| Constructor and Description | 
|---|
SingletonScope()
インスタンスを生成する。
 イーガーロードはしない。 
 | 
SingletonScope(boolean eagerLoad)
インスタンスを生成する。 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
destroy(ContainerDestroy event)
すべてのシングルトンコンポーネントを破棄する。 
 | 
int | 
dimensions()
スコープの広さを表す値を返す。 
 | 
<T> T | 
getComponent(ComponentId id,
            javax.inject.Provider<T> provider)
コンポーネントを取得する。 
 | 
void | 
init(ContainerCreated event)
イーガーロードをする場合、すべてのシングルトンコンポーネントを初期化する。 
 | 
registerpublic SingletonScope()
public SingletonScope(boolean eagerLoad)
eagerLoad - イーガーロードをする場合はtruepublic <T> T getComponent(ComponentId id, javax.inject.Provider<T> provider)
Scopeid - IDprovider - コンポーネントをインスタンス化するためのプロバイダ@Observes public void init(ContainerCreated event)
event - DIコンテナの初期化イベント@Observes public void destroy(ContainerDestroy event)
event - DIコンテナの破棄イベントpublic int dimensions()
Scopeこの値はDIコンテナ構築時のバリデーションで利用される。 コンポーネントは自分よりも広いスコープを持つコンポーネントに対してインジェクションできない。
例えばシングルトンはプロトタイプよりもスコープが広いので次のようなインジェクションは不正とみなされる。
 @Prototype
 class Foo {}
 
 @Singleton
 class Bar {
     @Inject
     Foo foo;
 }