|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
S2コンテナが管理するコンポーネントの定義を表すインターフェースです。
コンポーネント定義は、 コンポーネントの管理に必要な以下の情報を保持します。
インスタンス定義
で設定します。
生成については、 コンポーネント生成式
により指定することも可能です。引数定義
、
初期化メソッド定義
、 プロパティ定義
などにより設定します。
アスペクト定義
により設定します。メタデータ定義
により、 コンポーネントに付加情報を設定できます。 メタデータは、
特殊なコンポーネントであることを識別する場合などに利用します。
ArgDef
,
InterTypeDef
,
PropertyDef
,
InitMethodDef
,
DestroyMethodDef
,
AspectDef
,
MetaDef
メソッドの概要 | |
void |
destroy()
コンポーネント定義を破棄します。 |
AutoBindingDef |
getAutoBindingDef()
自動バインディング定義を返します。 |
Object |
getComponent()
定義に基づいてコンポーネントを返します。 |
Class |
getComponentClass()
定義上のクラスを返します。 |
String |
getComponentName()
コンポーネント名を返します。 |
Class |
getConcreteClass()
アスペクト適用後の、 実際にインスタンス化されるコンポーネントのクラスを返します。 |
S2Container |
getContainer()
このコンポーネント定義を含むS2コンテナを返します。 |
Expression |
getExpression()
コンポーネントを生成する式を返します。 |
InstanceDef |
getInstanceDef()
インスタンス定義を返します。 |
void |
init()
コンポーネント定義を初期化します。 |
void |
injectDependency(Object outerComponent)
外部コンポーネント outerComponent に対し、
コンポーネント定義 に基づいて、 S2コンテナ上のコンポーネントをインジェクションします。 |
boolean |
isExternalBinding()
外部バインディングが有効な場合 true を返します。
|
void |
setAutoBindingDef(AutoBindingDef autoBindingDef)
自動バインディング定義を設定します。 |
void |
setComponentName(String componentName)
コンポーネント名を設定します。 |
void |
setContainer(S2Container container)
このコンポーネント定義を含むS2コンテナを設定します。 |
void |
setExpression(Expression expression)
コンポーネントを生成する式を設定します。 |
void |
setExternalBinding(boolean externalBinding)
外部バインディングを有効にする場合 true を設定します。 |
void |
setInstanceDef(InstanceDef instanceDef)
インスタンス定義を設定します。 |
インタフェース org.seasar.framework.container.ArgDefAware から継承したメソッド |
addArgDef, getArgDef, getArgDefSize |
インタフェース org.seasar.framework.container.InterTypeDefAware から継承したメソッド |
addInterTypeDef, getInterTypeDef, getInterTypeDefSize |
インタフェース org.seasar.framework.container.PropertyDefAware から継承したメソッド |
addPropertyDef, getPropertyDef, getPropertyDef, getPropertyDefSize, hasPropertyDef |
インタフェース org.seasar.framework.container.InitMethodDefAware から継承したメソッド |
addInitMethodDef, getInitMethodDef, getInitMethodDefSize |
インタフェース org.seasar.framework.container.DestroyMethodDefAware から継承したメソッド |
addDestroyMethodDef, getDestroyMethodDef, getDestroyMethodDefSize |
インタフェース org.seasar.framework.container.AspectDefAware から継承したメソッド |
addAspectDef, addAspectDef, getAspectDef, getAspectDefSize |
インタフェース org.seasar.framework.container.MetaDefAware から継承したメソッド |
addMetaDef, getMetaDef, getMetaDef, getMetaDefs, getMetaDefSize |
メソッドの詳細 |
public Object getComponent() throws TooManyRegistrationRuntimeException, CyclicReferenceRuntimeException
TooManyRegistrationRuntimeException
- コンポーネント定義が重複している場合
CyclicReferenceRuntimeException
- コンポーネント間に循環参照がある場合TooManyRegistrationComponentDef
public void injectDependency(Object outerComponent)
outerComponent
に対し、
コンポーネント定義
に基づいて、 S2コンテナ上のコンポーネントをインジェクションします。
outerComponent
- 外部コンポーネントpublic S2Container getContainer()
public void setContainer(S2Container container)
container
- S2コンテナpublic Class getComponentClass()
diconファイルの<component>
タグにおける、 class
属性で指定されたクラスを表します。
自動バインディングされる際には、 このクラス(インターフェース)が使用されます。
public String getComponentName()
public void setComponentName(String componentName)
componentName
- コンポーネント名public Class getConcreteClass()
public AutoBindingDef getAutoBindingDef()
public void setAutoBindingDef(AutoBindingDef autoBindingDef)
autoBindingDef
- 自動バインディング定義public InstanceDef getInstanceDef()
public void setInstanceDef(InstanceDef instanceDef)
instanceDef
- インスタンス定義public Expression getExpression()
public void setExpression(Expression expression)
public boolean isExternalBinding()
true
を返します。
外部バインディングとは、 外部コンテキストにあるオブジェクトを、 指定したコンポーネントの対応するプロパティにバインディングする機能です。
Webアプリケーションにおいて、 リクエスト
コンテキストに入力された値を、
リクエストインスタンス
を通して取得し、
リクエスト間(ページ間)で透過的に引き継ぐ場合などに利用されます。
true
AbstractPropertyAssembler.bindExternally(BeanDesc,
ComponentDef, Object, Set)
public void setExternalBinding(boolean externalBinding)
true
を設定します。
externalBinding
- 外部バインディングを有効にする場合true
public void init()
コンポーネントインスタンス定義
がsingleton
の場合には、
アスペクト
を適用したインスタンスの生成、 配備、 プロパティ設定の後に、
initMethod
が呼ばれます。
SingletonComponentDeployer.init()
public void destroy()
コンポーネントインスタンス定義
がsingleton
の場合には、
destroyMethod
が呼ばれます。
SingletonComponentDeployer.destroy()
|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |