|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| Seasar2におけるDIの仕組みと設定方法 | ||||||||||||
|
それでは、サンプルから少し離れてSeasar2のDIの仕組みとDIの設定方法を解説しましょう。 |
||||||||||||
| DIの仕組み | ||||||||||||
|
Seasar2がDIを実現する仕組みはS2ContainerFactoryとS2Containerによって実現されます。 S2ContainerFactoryは、実行時にわたされる定義ファイルを解析してS2Containerを生成します。DIの利用者はS2Containerを利用してコンポーネントの取得を行います。DIの利用者はテストなどの場合を除き、S2ContainerFactory、S2Containerを直接利用することは少ないでしょう。 WebアプリケーションなどではS2ContainerServletからS2ContainerFactoryが呼び出されます。また、サンプルで使用したS2StrutsServletは内部でS2ContainerServletを呼び出しています。 リスト8:S2ContainerFactoryの利用方法 |
||||||||||||
S2Container container = S2ContainerFactory.create("定義ファイル.xml");
|
||||||||||||
| 定義ファイル | ||||||||||||
|
定義ファイルはXMLファイルとして記述されます。リスト9は定義ファイルの記述例です。 リスト9:定義ファイルの記述例 |
||||||||||||
<components>
|
||||||||||||
|
次に、さらに詳しいタグの利用方法について解説します。 |
||||||||||||
| componentタグ | ||||||||||||
|
componentタグは、DIxAOPコンテナが管理するオブジェクトの設定を行うものです。componentタグに設定できる代表的な属性を表4に示します。
表4:componentタグの属性 |
||||||||||||
| 依存関係の設定例 | ||||||||||||
|
表5はオブジェクト間の依存関係を定義ファイルで行う代表的な例です。 |
||||||||||||
| 定義ファイルの分割 | ||||||||||||
|
Seasar2は定義ファイルを分割することができます。 定義ファイルが大きくなると可読性が悪くなり管理するのが大変です。そこで開発チームを複数に分けるときには、定義ファイルも複数に分ける必要があります。 リスト10はサンプルのWebアプリケーションで複数の定義ファイルを設定している例です。Seasar2では定義ファイル"app.dicon"がS2Containerのルートとなる定義ファイルになりますので、このファイルに分割した定義ファイルをincludeタグで記述します。 リスト10:定義ファイルの分割例 |
||||||||||||
<components>
|
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||



