public interface Scope
Modifier and Type | Method and Description |
---|---|
int |
dimensions()
スコープの広さを表す値を返す。
|
<T> T |
getComponent(ComponentId id,
javax.inject.Provider<T> provider)
コンポーネントを取得する。
|
<T> void |
register(ComponentDefinition<T> definition)
コンポーネント定義を登録する。
|
<T> T getComponent(ComponentId id, javax.inject.Provider<T> provider)
id
- IDprovider
- コンポーネントをインスタンス化するためのプロバイダ<T> void register(ComponentDefinition<T> definition)
definition
- コンポーネント定義int dimensions()
この値はDIコンテナ構築時のバリデーションで利用される。 コンポーネントは自分よりも広いスコープを持つコンポーネントに対してインジェクションできない。
例えばシングルトンはプロトタイプよりもスコープが広いので次のようなインジェクションは不正とみなされる。
@Prototype class Foo {} @Singleton class Bar { @Inject Foo foo; }