┗━S2Container
1. diconファイルの分割 2. diconファイルの自動切り替え include : 親は子のコンポーネントが参照できるが、逆はできない。 containerインスタンスが複数生成される。 xi:include : 親と子は相互参照可能。 読み込まるので、containerインスタンスは一つ生…
diconファイルではOGNL式(Object-Graph-Navigation Language)が使用可能です。 1. リテラル 2. コンポーネントのプロパティ、メソッド 3. 配列、マップ参照 4. 静的プロパティ、メソッド 5. オブジェクト生成 などなど app.dicon
diconファイルの登録したコンポーネント以外に、外部コンテキストによって提供される値をバインドする機能です。 この機能はWebアプリケーションにおいてリクエストパラメータの値など自動バインディングするために使用されます。 外部バインディングを有効…
DIの指定を省略した場合、 コンポーネント間の依存関係は、 型および名前によってS2Containerが自動的に解決します。 componentタグのautoBinding属性を指定することで細かく制御することもできます。 autoBinding説明 auto(default) コンストラクタとプロパ…
フィールドにDIを行なうのがフィールド・インジェクションです。 フィールドには、Bindingアノテーションを使って指定します。この機能は、2.4から利用できます。 app.dicon < <components> <include path="convention.dicon"/> </include></components>
メソッドにDIを行なうのがメソッド・インジェクションです。 コンポーネントのメソッドには、componentタグの子タグであるinitMethodタグを使って指定します。 メソッド名はname属性で指定します。 initMethodタグの子タグであるargタグで引数を指定すること…
セッターメソッドにDIを行なうのがセッター・インジェクションです。 コンポーネントのプロパティには、componentタグの子タグであるpropertyタグを使って指定します。 プロパティ名はname属性で指定します。 app.dicon <components> </components>
コンストラクタの引数にDIを行なうのがコンストラクタ・インジェクションです。 コンストラクタの引数には、componentタグの子タグであるargタグを使って指定します。 app.dicon <components> <include path="convention.dicon"/> </include></components>
S2ContainerをWebアプリで使用する際に下記 コンポーネントはdicon.appに定義しなくても使用できる。 型コンポーネント名 S2Container container HttpServletRequest request HttpServletResponse response ServletContext application map applicationScope…
1. コンポーネントの定義はcomponetタグで定義する。 属性名説明 class(必須) コンポーネントのクラスを指定する name コンポーネント名を指定する instance コンポーネントのライフサイクルを指定する。詳細は2,3を参照 autoBinding コンポーネントの自動バ…
1. SingletonS2ContainerFactory VM上に一つのコンテナ存在していい場合に使う。 2. S2ContainerFactory VM上に複数のコンテナが必要な場合に使う。 3. S2ContainerServlet Webアプリケーションの場合に使う。 S2ContainerServletがSingletonS2ContainerFact…