liguofeng29’s blog

個人勉強用ブログだっす。

┗━S2Container

【インクルード】【名前空間】【環境名】

1. diconファイルの分割 2. diconファイルの自動切り替え include : 親は子のコンポーネントが参照できるが、逆はできない。 containerインスタンスが複数生成される。 xi:include : 親と子は相互参照可能。 読み込まるので、containerインスタンスは一つ生…

OGNL

diconファイルではOGNL式(Object-Graph-Navigation Language)が使用可能です。 1. リテラル 2. コンポーネントのプロパティ、メソッド 3. 配列、マップ参照 4. 静的プロパティ、メソッド 5. オブジェクト生成 などなど app.dicon

外部バインディング

diconファイルの登録したコンポーネント以外に、外部コンテキストによって提供される値をバインドする機能です。 この機能はWebアプリケーションにおいてリクエストパラメータの値など自動バインディングするために使用されます。 外部バインディングを有効…

自動バインディング

DIの指定を省略した場合、 コンポーネント間の依存関係は、 型および名前によってS2Containerが自動的に解決します。 componentタグのautoBinding属性を指定することで細かく制御することもできます。 autoBinding説明 auto(default) コンストラクタとプロパ…

Dependency Injectionタイプその4 - フィールド・インジェクション

フィールドにDIを行なうのがフィールド・インジェクションです。 フィールドには、Bindingアノテーションを使って指定します。この機能は、2.4から利用できます。 app.dicon < <components> <include path="convention.dicon"/> </include></components>

Dependency Injectionタイプその3 - メソッド・インジェクション

メソッドにDIを行なうのがメソッド・インジェクションです。 コンポーネントのメソッドには、componentタグの子タグであるinitMethodタグを使って指定します。 メソッド名はname属性で指定します。 initMethodタグの子タグであるargタグで引数を指定すること…

Dependency Injectionタイプその2 - セッター・インジェクション

セッターメソッドにDIを行なうのがセッター・インジェクションです。 コンポーネントのプロパティには、componentタグの子タグであるpropertyタグを使って指定します。 プロパティ名はname属性で指定します。 app.dicon <components> </components>

Dependency Injectionタイプその1 - コンストラクタ・インジェクション

コンストラクタの引数にDIを行なうのがコンストラクタ・インジェクションです。 コンストラクタの引数には、componentタグの子タグであるargタグを使って指定します。 app.dicon <components> <include path="convention.dicon"/> </include></components>

S2Container - 暗黙コンポーネント

S2ContainerをWebアプリで使用する際に下記 コンポーネントはdicon.appに定義しなくても使用できる。 型コンポーネント名 S2Container container HttpServletRequest request HttpServletResponse response ServletContext application map applicationScope…

S2Container - コンポーネントの定義とライフサイクル

1. コンポーネントの定義はcomponetタグで定義する。 属性名説明 class(必須) コンポーネントのクラスを指定する name コンポーネント名を指定する instance コンポーネントのライフサイクルを指定する。詳細は2,3を参照 autoBinding コンポーネントの自動バ…

S2Container - 生成方法

1. SingletonS2ContainerFactory VM上に一つのコンテナ存在していい場合に使う。 2. S2ContainerFactory VM上に複数のコンテナが必要な場合に使う。 3. S2ContainerServlet Webアプリケーションの場合に使う。 S2ContainerServletがSingletonS2ContainerFact…