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)
イーガーロードをする場合、すべてのシングルトンコンポーネントを初期化する。
|
register
public SingletonScope()
public SingletonScope(boolean eagerLoad)
eagerLoad
- イーガーロードをする場合はtruepublic <T> T getComponent(ComponentId id, javax.inject.Provider<T> provider)
Scope
id
- 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; }