S2コンテナとその構成要素を定義するインターフェースおよび、S2コンテナの振舞いに関連した例外クラスを提供します。

このパッケージを構成する主な要素は、以下のとおりです。

コンテナ本体(S2Container
S2コンテナ本体は、各コンポーネントの定義情報を保持し、必要に応じてコンポーネントの生成・提供を行います。 S2コンテナは階層構造を持つことができます。階層関係はdiconファイルの<include>要素で指定します。
定義情報(~Def)
diconファイルやアノテーションで指定されたコンポーネントの定義情報は、S2コンテナ上では ComponentDefPropertyDef などの定義情報として保持されます。
定義情報の所有(~DefAware)
定義情報を所有可能であることを表すインターフェースです。 定義情報の追加、定義情報の数の取得、定義情報の取得の3種類のメソッドを提供します。 diconファイルにおける定義情報の所有関係の例としては、 <component>要素(PropertyDefAware)と<property>要素(PropertyDef) の関係などが挙げられます。
式(Expression
S2コンテナでは、コンポーネントの定義や値の定義に、式を利用することが出来ます。標準ではOGNL式をサポートしています。
外部コンテキスト(ExternalContext
Webコンテナやポートレットコンテナで管理されるコンポーネントへのアクセス手段を提供します。 例えば、Webコンテナのrequestスコープコンポーネント(HttpServletRequest)の取得や設定を行うことが出来ます。
コンポーネントの構築(~Assembler)
S2コンテナでは、コンストラクタ、プロパティ設定、初期化メソッドを順に実行してコンポーネントを組み立てます。 それぞれの処理をConstructorAssemblerPropertyAssemblerMethodAssemblerが担当します。 (MethodAssemblerは、S2コンテナによって管理されているコンポーネントが破棄される際の destroyメソッドとしても用いられます)
SMART deploy (HOT / WARM / COOL deploy)
規約に従って作成されたクラスを、S2コンテナが管理するコンポーネントとして自動的に登録する機能を提供します。 この機能に関連するインターフェースとしてComponentCreatorComponentCustomizerComponentDeployerがあります。


diconファイルタグと定義情報インターフェース

この表は、diconファイルのタグ(及びTigerアノテーション)と定義情報を表すインターフェース(及び定義情報の所有を表すインターフェース)の関係を示しています。

diconファイルタグと定義情報インターフェースの関係
diconファイルタグ Tigerアノテーション 定義情報インタフェース(~Def) 定義情報の所有インターフェース(~DefAware)
<components> - S2Container -
<component> @Component ComponentDef -
<arg> - ArgDef ArgDefAware
<property> @Binding PropertyDef PropertyDefAware
<initMethod> @InitMethod InitMethodDef InitMethodDefAware
<destroyMethod> @DestroyMethod DestroyMethodDef DestroyMethodDefAware
<aspect> @Aspect AspectDef AspectDefAware
<interType> @InterType InterTypeDef InterTypeDefAware
<meta> - MetaDef MetaDefAware