@Published(tag="architect") public class DiContainer extends java.lang.Object implements ObjectLoader
staticプロパティへのインジェクションは行われない。 インジェクションの対象となるプロパティがstaticである場合、例外が発生する。
後方互換性を維持するするため、システムプロパティ"nablarch.diContainer.allowStaticInjection"に
true
を設定することで、staticプロパティへのインジェクションを許可できる。
後方互換性維持以外の目的での使用は推奨しない。
Constructor and Description |
---|
DiContainer(ComponentDefinitionLoader loader)
コンストラクタ。
|
DiContainer(ComponentDefinitionLoader loader,
boolean allowStaticInjection)
コンストラクタ。
|
Modifier and Type | Method and Description |
---|---|
int |
generateId()
コンポーネントIDの最大値を取得する。
|
java.lang.Object |
getComponentById(int id)
コンポーネントIDをキーにコンポーネントを取得する。
|
<T> T |
getComponentByName(java.lang.String name)
コンポーネント名をキーにコンポーネントを取得する。
|
<T> T |
getComponentByType(java.lang.Class<T> type)
コンポーネントの型をキーにコンポーネントを取得する。
|
java.util.Map<java.lang.String,java.lang.Object> |
load()
DIしたオブジェクトを取得するロードメソッド。
|
protected ExternalizedComponentDefinitionLoader |
loadExternalizedComponentDefinitionLoader()
ExternalizedComponentDefinitionLoader をServiceLoader を使って読み込む。
ExternalizedComponentDefinitionLoader のサービスプロバイダが設定されていない場合は、
後方互換を維持するためにSystemPropertyExternalizedLoader が使用されます。 |
void |
reload()
コンテナの保持するオブジェクトの再生成を行う。
オブジェクトの再生成は下記順序で行う。 設定の読み込み コンポーネント定義の登録 コンポーネント定義にあるObjectLoaderの生成とObjectLoader内のコンポーネントのロード システムプロパティによるコンポーネント定義の上書き コンポーネントの生成 コンポーネントに対するインジェクションの実行 初期化対象クラスの初期化実行 |
public DiContainer(ComponentDefinitionLoader loader)
loader
- コンポーネント定義のローダpublic DiContainer(ComponentDefinitionLoader loader, boolean allowStaticInjection)
loader
- コンポーネント定義のローダallowStaticInjection
- staticプロパティへのインジェクションを許容するかどうかprotected ExternalizedComponentDefinitionLoader loadExternalizedComponentDefinitionLoader()
ExternalizedComponentDefinitionLoader
をServiceLoader
を使って読み込む。
ExternalizedComponentDefinitionLoader
のサービスプロバイダが設定されていない場合は、
後方互換を維持するためにSystemPropertyExternalizedLoader
が使用されます。ExternalizedComponentDefinitionLoader
public java.util.Map<java.lang.String,java.lang.Object> load()
load
in interface ObjectLoader
ObjectLoader.load()
public int generateId()
public void reload()
public java.lang.Object getComponentById(int id)
id
- コンポーネントIDpublic <T> T getComponentByName(java.lang.String name)
T
- コンポーネントの型name
- コンポーネント名public <T> T getComponentByType(java.lang.Class<T> type)
T
- コンポーネントの型type
- コンポーネントの型