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