|
||||||||||||
| 1 2 3 4 次のページ | ||||||||||||
| サンプルを用いたSpringによるAADL3への道 | ||||||||||||
|
前回は、Seasar2を利用したインターフェースベースの設計について解説しましたが、今回はSpringを利用したインターフェースベースの設計とトランザクション管理を解説します。 では早速、連載の第1回の最後に出てきた従業員管理WebアプリケーションにSpringを導入したもの(本連載の第2回でインストールした従業員管理Webアプリケーション。以下、サンプルと記述)を見てみましょう。Springの定義ファイルについての詳細な解説は後ほど行います。 |
||||||||||||
| インターフェースベース設計 | ||||||||||||
|
サンプルコードではSpringを導入することによって、DIを利用する際にEmployeeManagerImplがEmployeeDaoインターフェースの実装を知らなくても済むようにしています。またSpringを導入することによって、EmployeeManagerImplで明示的にコーディングしていたトランザクション管理(commitやrollback)をSpringに移すことで宣言的なトランザクションを実現しています。 では、Spring用に新たに作成された定義ファイルと修正されたEmployeeManagerImplを見ていきましょう。 まず、はじめに定義ファイルです。Springを利用したインターフェースベースの設計を実現するため、定義ファイルにEmployeeManagerとEmployeeDaoの依存関係が記述されています(リスト1)。 リスト1 |
||||||||||||
<!-- Manager(Transaction Target) -->
|
||||||||||||
|
これに合わせEmployeeManagerImplでは、EmployeeDaoImplのインスタンスを作成している部分を削除し、Springのセッタインジェクションを利用するためにEmployeeDaoインターフェースを格納するプロパティとセッタメソッドが追加されています(リスト2)。 リスト2 |
||||||||||||
public class EmployeeManagerImpl implements EmployeeManager {
|
||||||||||||
|
SpringをWebアプリケーションとして動作させるためには、"web.xml"にBean定義ファイルとBean定義ファイルを読込むためのリスナ(ContextLoderListener)を設定する必要があります。リスト3はリスナの設定例です。 リスト3 |
||||||||||||
<context-param>
|
||||||||||||
|
上記の設定により、Webアプリケーションの起動時に自動的にリスナがSpringを起動させます。そして起動されたSpringはオブジェクトの関連づけをしてくれます。サンプルでは起動されたSpringが定義ファイルを参照し、EmployeemanagerImplのセッタメソッドを利用してEmployeeDaoの実装クラスを設定してくれます。この機能により、Spring上で動作するPOJO(EmployeeManagerImpl)はインターフェース(EmployeeDao)の実装クラスを取得するためにSpringを意識する必要がないのです。 ここまでが、Springを利用したインターフェースベースの設計になります。 EmployeeManagerImplがEmployeeDaoインターフェースの実装を知らなくても済むようなっていること、Spring上のPOJOがSpringを意識する必要がないことが理解していただけたかと思います。 |
||||||||||||
|
1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||


