|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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)
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()
|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |