|
|||||||||||||||
| 前のページ 1 2 3 4 次のページ | |||||||||||||||
| ドキュメント、教育、サポート | |||||||||||||||
|
オープンソースを利用する際には、ドキュメントや教育、サポートが充実していることが不可欠な要素です。 まず、ドキュメントですがSeasar2は日本語のWebドキュメントが非常に充実しています。市販の書籍も近いうちに発売される予定です。 対するSpringは日本語の市販書籍が3冊あります。Springの解説も含まれている市販書籍も入れると5冊以上あり、非常に充実しています。Web上では英文のドキュメントは充実していますが日本語のものはSeasar2に比較すると充実しているとはいえないのが現状です。 次に教育の面ですが、Seasar2とSpringともにその数は充実しているとはいいがたいのですが、教育コースを行っているところがいくつか存在しています。 サポートに関しても、Seasar2の商用サポートを開始している企業もあります。メーリングリストも極めて活発であり、疑問や不具合の解消にもすばやくに応えてくれます。Springの国内におけるメーリングリストは活動していないに等しい状況なのでメーリングリストによるサポートは期待しないほうがよいでしょう。 Seasar2と異なりSpringを利用する場合は、問題が起きた時に自力で解決するか、Springの教育やコンサルティングを行っている企業に解決を依頼する必要があるでしょう。 |
|||||||||||||||
表5:ドキュメントやサポート |
|||||||||||||||
| DIとは何か? | |||||||||||||||
|
さて、ここまでのところで何故DIxAOPコンテナが注目され利用されようとしているのか、利用できる状況にあるのかについてはご理解していただけたと思います。ここからは具体的にどうやってDIxAOPコンテナが問題を解決していくのかを解説します。まずはDIの仕組みについて解説します。 DIとは日本語に訳すと「依存性の注入」となります。依存性の注入といわれてもピンとこないと思いますが、コンポーネントのプロパティに、依存するコンポーネントを設定することによりコンポーネントとコンポーネントを関連づけること、といえばご理解いただけるでしょうか。 例えば従業員を管理するようなWebアプリケーションで、ビジネスロジックオブジェクトEmployeeManagerがデータベースアクセスオブジェクトEmployeeDaoを利用する(EmployeeManagerがEmployeeDaoに依存している)場合を考えてみましょう(図1)。 ![]() 図1:EmployeeManagerがEmployeeDaoに依存 ![]() 図2:通常の依存関係 ![]() 図3:DIxAOPコンテナによる依存関係の作成 |
|||||||||||||||
| 依存性の注入の種類 | |||||||||||||||
|
次に、DIxAOPコンテナがコンポーネント間の依存性の注入をどのように実現するのかをEmployeeManagerのソースコードから例示します。依存性の注入には利用する操作によって、大きく3つの種類があります。 |
|||||||||||||||
| コンストラクタ・インジェクション | |||||||||||||||
|
コンストラクタ・インジェクションは、DIxAOPコンテナがコンストラクタを利用して、プロパティをセットします。 |
|||||||||||||||
public class EmployeeManager {
|
|||||||||||||||
| セッターインジェクション | |||||||||||||||
|
セッターインジェクションは、DIxAOPコンテナがプロパティに対応したセッターを利用します。 |
|||||||||||||||
public class EmployeeManager {
|
|||||||||||||||
| メソッドインジェクション | |||||||||||||||
|
メソッドインジェクションは、DIxAOPコンテナ(Seasar2のみです)が任意のメソッドを利用します。 |
|||||||||||||||
public class EmployeeManager {
|
|||||||||||||||
|
前のページ 1 2 3 4 次のページ |
|||||||||||||||
|
|
|||||||||||||||
|
|
|||||||||||||||
|
|||||||||||||||
|
|
|||||||||||||||
|
|||||||||||||||





