<html>
<head>
<title>S2Container</title>
<style type="text/css">
span.foldopened { color: white; font-size: xx-small;
border-width: 1; font-family: monospace; padding: 0em 0.25em 0em 0.25em; background: #e0e0e0;
VISIBILITY: visible;
cursor:pointer; }
span.foldclosed { color: #666666; font-size: xx-small;
border-width: 1; font-family: monospace; padding: 0em 0.25em 0em 0.25em; background: #e0e0e0;
VISIBILITY: hidden;
cursor:pointer; }
span.foldspecial { color: #666666; font-size: xx-small; border-style: none solid solid none;
border-color: #CCCCCC; border-width: 1; font-family: sans-serif; padding: 0em 0.1em 0em 0.1em; background: #e0e0e0;
cursor:pointer; }
li { list-style: none; }
span.l { color: red; font-weight: bold; }
a:link {text-decoration: none; color: black; }
a:visited {text-decoration: none; color: black; }
a:active {text-decoration: none; color: black; }
a:hover {text-decoration: none; color: black; background: #eeeee0; }
</style>
<!-- ^ Position is not set to relative / absolute here because of Mozilla -->
</head>
<body>
<p>S2Container
<ul><li>概要
<ul><li>Seasarの中心となるインターフェースです
</li>
<li>大きな機能は2つ
<ul><li>コンテナへの登録、コンテナからのコンポーネント取得、検索などを行う
<br>
コンポーネントを管理する機能
<br>
<br>
<ul><li>get~
<ul><li>getComponent
</li>
<li>getComponentDefSize
</li>
<li>getComponentDef
</li>
</ul>
</li>
<li>find~
<ul><li>findComponents
</li>
<li>findAllComponents
</li>
<li>findLocalComponents
</li>
<li>findComponentDefs
</li>
<li>findAllComponentDefs
</li>
<li>findLocalComponentDefs
</li>
</ul>
</li>
<li>hasComponentDef
</li>
<li>register
</li>
<li>injectDependency
</li>
</ul>
</li>
<li>コンテナの初期化、終了処理、コンテナの階層化、階層化されたコンテナへのアクセスなど
<br>
コンテナを管理する機能
<ul><li>コンテナ自身
<ul><li>getNamespace
</li>
<li>setNamespace
</li>
<li>getPath
</li>
<li>setPath
</li>
<li>getClassLoader
</li>
<li>setClassLoader
</li>
<li>init
</li>
<li>destroy
</li>
<li>getExternalContext
</li>
<li>setExternalContext
</li>
<li>getExternalContextComponentDefRegister
</li>
<li>setExternalContextComponentDefRegister
</li>
</ul>
</li>
<li>コンテナ階層
<ul><li>hasDescendant
</li>
<li>getDescendant
</li>
<li>registerDescendant
</li>
<li>include
</li>
<li>getChildSize
</li>
<li>getChild
</li>
<li>getParentSize
</li>
<li>getParent
</li>
<li>addParent
</li>
<li>getRoot
</li>
<li>setRoot
</li>
<li>registerMap
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>コンテナのコンポーネントの扱い方について
<ul><li>コンポーネントとは
<ul><li>1つかまたそれ以上のクラスで構成されるJavaオブジェクト
</li>
<li>アプリケーションとクラスの間の大きさ
</li>
<li>インターフェスを窓口としてやり取りされる
</li>
</ul>
</li>
<li>DIの流れ
<ul><li>コンテナの生成
</li>
<li>コンテナの初期化:init
</li>
<li>コンポーネントの生成:
</li>
<li>コンポーネントの初期化:
</li>
<li>コンポーネントの取得:
<ul><li>get:コンポーネント(定義)を取得
</li>
<li>find:コンポーネント(定義)を検索
</li>
</ul>
</li>
<li>コンテナの破棄:destroy
</li>
</ul>
</li>
<li>検索の範囲
<ul><li>キーが文字列の場合、名前が一致するコンポーネント(定義)の配列を返します。
</li>
<li>キーがクラスまたはインターフェースの場合、キーの型に代入可能なコンポーネント(定義)の配列を返します。
</li>
</ul>
</li>
<li>DIの種類
<ul><li>injectDependency
</li>
<li>コンストラクタ・インジェクション
<ul><li>コンストラクタ引数を利用して、コンポーネントをセットする。
</li>
</ul>
</li>
<li>セッター・インジェクション
<ul><li>セッターメソッド(setHoge)を利用して、コンポーネントをセットする。
</li>
</ul>
</li>
<li>メソッド・インジェクション
<ul><li>任意のメソッドを利用して、コンポーネントをセットする。
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>コンテナの階層について
</li>
</ul></body>
</html>