|
|||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
DIとAOPをサポートしたS2コンテナのインターフェースです。
コンポーネントの管理を行う機能を提供します。 コンポーネントとは1つかまたそれ以上のクラスで構成されるJavaオブジェクトです。 S2コンテナはコンポーネントの生成、コンポーネントの初期化、コンポーネントの取得を提供します。 コンポーネントを取得するキーには、コンポーネント名、コンポーネントのクラス、またはコンポーネントが実装するインターフェースを指定することができます。
S2コンテナ全体は複数のコンテナにより階層化されています。 一つのコンテナは複数のコンテナをインクルードすることができます。 複数のコンテナが同一のコンテナをインクルードすることができます。
インクルードの参照範囲についてのイメージを示します。

コンテナの検索順についてのイメージを示します。
S2コンテナは3種類のインジェクションをサポートします。
コンストラクタ・インジェクションセッター・インジェクションメソッド・インジェクションコンテナへの登録、コンテナからのコンポーネント取得、検索などを行うコンポーネントを管理する機能
getComponentgetComponentDefSizegetComponentDeffindComponentsfindAllComponentsfindLocalComponentsfindComponentDefsfindAllComponentDefsfindLocalComponentDefshasComponentDefregisterinjectDependencygetNamespacesetNamespacegetPath getPath getPathsetPath setPath setPathgetClassLoadersetClassLoaderinitdestroygetExternalContextsetExternalContextgetExternalContextComponentDefRegistersetExternalContextComponentDefRegisterhasDescendantgetDescendantregisterDescendantincludegetChildSizegetChildgetParentSizegetParentaddParentgetRootsetRootregisterMap
| メソッドの概要 | |
void |
addParent(S2Container parent)
親コンテナを追加します。 |
void |
destroy()
コンテナの終了処理をおこないます。 |
ComponentDef[] |
findAllComponentDefs(Object componentKey)
指定されたキーに対応する複数のコンポーネント定義を検索して返します。 |
Object[] |
findAllComponents(Object componentKey)
指定されたキーに対応する複数のコンポーネントを検索して返します。 |
ComponentDef[] |
findComponentDefs(Object componentKey)
指定されたキーに対応する複数のコンポーネント定義を検索して返します。 |
Object[] |
findComponents(Object componentKey)
指定されたキーに対応する複数のコンポーネントを検索して返します。 |
ComponentDef[] |
findLocalComponentDefs(Object componentKey)
指定されたキーに対応する複数のコンポーネント定義を検索して返します。 |
Object[] |
findLocalComponents(Object componentKey)
指定されたキーに対応する複数のコンポーネントを検索して返します。 |
S2Container |
getChild(int index)
番号で指定された位置の子コンテナを返します。 |
int |
getChildSize()
インクルードしている子コンテナの数を返します。 |
ClassLoader |
getClassLoader()
クラスローダーを返します。 |
Object |
getComponent(Object componentKey)
指定されたキーに対応するコンポーネントを返します。 |
ComponentDef |
getComponentDef(int index)
番号で指定された位置のコンポーネント定義を返します。 |
ComponentDef |
getComponentDef(Object componentKey)
指定されたキーに対応するコンポーネント定義を返します。 |
int |
getComponentDefSize()
コンテナに登録されているコンポーネント定義の数を返します。 |
S2Container |
getDescendant(String path)
pathを読み込んだS2コンテナを返します。 |
ExternalContext |
getExternalContext()
外部コンテキストを返します。 |
ExternalContextComponentDefRegister |
getExternalContextComponentDefRegister()
外部コンテキストが提供する コンポーネントを登録するオブジェクトを返します。 |
String |
getNamespace()
名前空間を返します。 |
S2Container |
getParent(int index)
番号で指定された位置の親コンテナを返します。 |
int |
getParentSize()
このコンテナをインクルードしている親コンテナの数を返します。 |
String |
getPath()
設定ファイルの pathを返します。 |
S2Container |
getRoot()
ルートのS2コンテナを返します。 |
boolean |
hasComponentDef(Object componentKey)
指定されたキーに対応するコンポーネント定義が存在する場合 trueを返します。 |
boolean |
hasDescendant(String path)
pathを読み込んだS2コンテナが存在する場合trueを返します。 |
void |
include(S2Container child)
コンテナを子としてインクルードします。 |
void |
init()
コンテナの初期化を行います。 |
void |
injectDependency(Object outerComponent)
outerComponentのクラスをキーとして登録された
コンポーネント定義に従って、必要なコンポーネントのインジェクションを実行します。
|
void |
injectDependency(Object outerComponent,
Class componentClass)
componentClassをキーとして登録された コンポーネント定義に従って、必要なコンポーネントのインジェクションを実行します。
|
void |
injectDependency(Object outerComponent,
String componentName)
componentNameをキーとして登録された コンポーネント定義に従って、インジェクションを実行します。
|
boolean |
isInitializeOnCreate()
コンテナ作成時に初期化する場合 trueを返します。 |
void |
register(Class componentClass)
クラスをコンポーネント定義として登録します。 |
void |
register(Class componentClass,
String componentName)
指定された名前でクラスをコンポーネント定義として登録します。 |
void |
register(ComponentDef componentDef)
コンポーネント定義を登録します。 |
void |
register(Object component)
コンポーネントを登録します。 |
void |
register(Object component,
String componentName)
指定された名前でコンポーネントを登録します。 |
void |
registerDescendant(S2Container descendant)
descendantを子孫コンテナとして登録します。
|
void |
registerMap(Object key,
ComponentDef componentDef,
S2Container container)
子コンテナ( container)に登録された コンポーネント定義(componentDef)をこのコンテナから検索できるよう
コンポーネント定義を管理するマップに登録します。 |
void |
setClassLoader(ClassLoader classLoader)
クラスローダーを設定します。 |
void |
setExternalContext(ExternalContext externalContext)
外部コンテキストを設定します。 |
void |
setExternalContextComponentDefRegister(ExternalContextComponentDefRegister externalContextComponentDefRegister)
外部コンテキストが提供する コンポーネントを登録するオブジェクトを設定します。 |
void |
setInitializeOnCreate(boolean initializeOnCreate)
コンテナ作成時に初期化する場合 trueを設定します。 |
void |
setNamespace(String namespace)
名前空間を設定します。 |
void |
setPath(String path)
設定ファイルの pathを設定します。 |
void |
setRoot(S2Container root)
ルートのS2コンテナを設定します。 |
| インタフェース org.seasar.framework.container.MetaDefAware から継承したメソッド |
addMetaDef, getMetaDef, getMetaDef, getMetaDefs, getMetaDefSize |
| メソッドの詳細 |
public Object getComponent(Object componentKey)
throws ComponentNotFoundRuntimeException,
TooManyRegistrationRuntimeException,
CyclicReferenceRuntimeException
キーが文字列の場合、名前が一致するコンポーネントを返します。 キーがクラスまたはインターフェースの場合、キーの型に代入可能なコンポーネントを返します。
componentKey - コンポーネントを取得するためのキー
ComponentNotFoundRuntimeException - コンポーネントが見つからない場合
TooManyRegistrationRuntimeException - 同じ名前、または同じクラスに複数のコンポーネントが登録されている場合
CyclicReferenceRuntimeException - コンストラクタ・インジェクションでコンポーネントの参照が循環している場合
public Object[] findComponents(Object componentKey)
throws CyclicReferenceRuntimeException
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナを対象とします。 このS2コンテナから,キーに対応する全てのコンポーネントを配列で返します。 返される配列に含まれるコンポーネントは全て同一のS2コンテナに登録されたものです。
componentKey - コンポーネントを取得するためのキー
CyclicReferenceRuntimeException - コンストラクタ・インジェクションでコンポーネントの参照が循環している場合findAllComponents(java.lang.Object),
findLocalComponents(java.lang.Object)
public Object[] findAllComponents(Object componentKey)
throws CyclicReferenceRuntimeException
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナとその子孫コンテナの全てを対象とします。 対象になるS2コンテナ全体から、キーに対応する全てのコンポーネントを配列で返します。
componentKey - コンポーネントを取得するためのキー
CyclicReferenceRuntimeException - コンストラクタ・インジェクションでコンポーネントの参照が循環している場合findComponents(java.lang.Object),
findLocalComponents(java.lang.Object)
public Object[] findLocalComponents(Object componentKey)
throws CyclicReferenceRuntimeException
検索の範囲は現在のS2コンテナのみです。 現在のS2コンテナから、キーに対応する全てのコンポーネントを配列で返します。
componentKey - コンポーネントを取得するためのキー
CyclicReferenceRuntimeException - コンストラクタ・インジェクションでコンポーネントの参照が循環している場合findComponents(java.lang.Object),
findAllComponents(java.lang.Object)
public void injectDependency(Object outerComponent)
throws ClassUnmatchRuntimeException
outerComponentのクラスをキーとして登録された
コンポーネント定義に従って、必要なコンポーネントのインジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
コンポーネント定義のインスタンス定義は
outerでなくてはなりません。
outerComponent - 外部コンポーネント
ClassUnmatchRuntimeException - 適合するコンポーネント定義が見つからない場合
public void injectDependency(Object outerComponent,
Class componentClass)
throws ClassUnmatchRuntimeException
componentClassをキーとして登録された コンポーネント定義に従って、必要なコンポーネントのインジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
コンポーネント定義のインスタンス定義は
outerでなくてはなりません。
outerComponent - 外部コンポーネントcomponentClass - コンポーネント定義のキー (クラス)
ClassUnmatchRuntimeException - 適合するコンポーネント定義が見つからない場合
public void injectDependency(Object outerComponent,
String componentName)
throws ClassUnmatchRuntimeException
componentNameをキーとして登録された コンポーネント定義に従って、インジェクションを実行します。
アスペクト、コンストラクタ・インジェクションは適用できません。
コンポーネント定義のインスタンス定義は
outerでなくてはなりません。
outerComponent - 外部コンポーネントcomponentName - コンポーネント定義のキー (名前)
ClassUnmatchRuntimeExceptionpublic void register(Object component)
S2コンテナに無名のコンポーネントとして登録します。 登録されたコンポーネントはインジェクションやアスペクトの適用などは出来ません。 他のコンポーネント構築時に依存オブジェクトとして利用することが可能です。
component - コンポーネント
public void register(Object component,
String componentName)
component - コンポーネントcomponentName - コンポーネント名public void register(Class componentClass)
登録するコンポーネントは以下のものになります。
インスタンス定義singleton自動バインディング定義auto
componentClass - コンポーネントのクラス
public void register(Class componentClass,
String componentName)
登録するコンポーネントは以下のものになります。
インスタンス定義singleton自動バインディング定義auto
componentClass - コンポーネントのクラスcomponentName - コンポーネント名public void register(ComponentDef componentDef)
componentDef - コンポーネント定義public int getComponentDefSize()
public ComponentDef getComponentDef(int index)
index - 番号
public ComponentDef getComponentDef(Object componentKey)
throws ComponentNotFoundRuntimeException
componentKey - キー
ComponentNotFoundRuntimeException - コンポーネント定義が見つからない場合public ComponentDef[] findComponentDefs(Object componentKey)
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナを対象とします。 このS2コンテナから,キーに対応する全てのコンポーネント定義を配列で返します。 返される配列に含まれるコンポーネント定義は全て同一のS2コンテナに登録されたものです。
componentKey - コンポーネント定義を取得するためのキー
findAllComponentDefs(java.lang.Object),
findLocalComponentDefs(java.lang.Object)public ComponentDef[] findAllComponentDefs(Object componentKey)
検索の範囲は現在のS2コンテナおよび、インクルードしているS2コンテナの階層全体です。 キーに対応するコンポーネントが最初に見つかったS2コンテナとその子孫コンテナの全てを対象とします。 対象になるS2コンテナ全体から、キーに対応する全てのコンポーネント定義を配列で返します。
componentKey - コンポーネント定義を取得するためのキー
findComponentDefs(java.lang.Object),
findLocalComponentDefs(java.lang.Object)public ComponentDef[] findLocalComponentDefs(Object componentKey)
検索の範囲は現在のS2コンテナのみです。 現在のS2コンテナから、キーに対応する全てのコンポーネント定義を配列で返します。
componentKey - コンポーネント定義を取得するためのキー
findComponentDefs(java.lang.Object),
findAllComponentDefs(java.lang.Object)public boolean hasComponentDef(Object componentKey)
trueを返します。
componentKey - キー
true、そうでない場合はfalsepublic boolean hasDescendant(String path)
pathを読み込んだS2コンテナが存在する場合trueを返します。
path - パス
pathを読み込んだS2コンテナが存在する場合true、そうでない場合はfalse
public S2Container getDescendant(String path)
throws ContainerNotRegisteredRuntimeException
pathを読み込んだS2コンテナを返します。
path - パス
ContainerNotRegisteredRuntimeException - S2コンテナが見つからない場合public void registerDescendant(S2Container descendant)
descendantを子孫コンテナとして登録します。
子孫コンテナとは、このコンテナに属する子のコンテナや、その子であるコンテナです。
descendant - 子孫コンテナpublic void include(S2Container child)
child - インクルードするS2コンテナpublic int getChildSize()
public S2Container getChild(int index)
index - 子コンテナの番号
public int getParentSize()
public S2Container getParent(int index)
index - 親コンテナの番号
public void addParent(S2Container parent)
parent - 親として追加するS2コンテナpublic void init()
public void destroy()
public String getNamespace()
public void setNamespace(String namespace)
namespace - 名前空間public boolean isInitializeOnCreate()
trueを返します。
truepublic void setInitializeOnCreate(boolean initializeOnCreate)
trueを設定します。
initializeOnCreate - コンテナ作成時に初期化する場合truepublic String getPath()
pathを返します。
pathpublic void setPath(String path)
pathを設定します。
path - 設定ファイルのpathpublic S2Container getRoot()
public void setRoot(S2Container root)
root - S2コンテナpublic ExternalContext getExternalContext()
public void setExternalContext(ExternalContext externalContext)
外部コンテキストは、
application,
request,
sessionなど 各インスタンス定義を提供するものです。
これらのインスタンス定義を使用するには 外部コンテキストを設定する必要があります。
externalContext - ExternalContextpublic ExternalContextComponentDefRegister getExternalContextComponentDefRegister()
外部コンテキストが提供する コンポーネントを登録するオブジェクトを返します。
public void setExternalContextComponentDefRegister(ExternalContextComponentDefRegister externalContextComponentDefRegister)
外部コンテキストが提供する コンポーネントを登録するオブジェクトを設定します。
externalContextComponentDefRegister - 外部コンテキストが提供するコンポーネントを登録するオブジェクトpublic ClassLoader getClassLoader()
public void setClassLoader(ClassLoader classLoader)
classLoader -
public void registerMap(Object key,
ComponentDef componentDef,
S2Container container)
container)に登録された コンポーネント定義(componentDef)をこのコンテナから検索できるよう
コンポーネント定義を管理するマップに登録します。
key - キーcomponentDef - コンポーネント定義container - S2コンテナ
|
|||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||