次へ→Guiceを使った依存オブジェクト切り離しでは、実際にユーザ処理を依存部分として切り離してみましょう。以下のようにインタフェースおよびクラスを追加・修正することにします。以下のメソッドを定義する。指定されたID、パスワードを持つユーザを取得する。存在しない場合はnullを返す。指定されたIDを持つユーザを取得する。存在しない場合はnullを返す。すべてのユーザを返す。test.Repositoryインタフェースを実装する。データベースアクセスなどはせず、内部に定数としてID、名前、パスワードの配列を持つ。test.Repositoryインタフェースを実装する。EntityManagerを通じてデータベースアクセスをおこなう。以下のように修正する。コンストラクタの引数にRepositoryオブジェクトを追加。このオブジェクトはGuiceから提供される。コンストラクタに指定されたRepositoryオブジェクトへの参照を保持する。通じてユーザ情報の取得をおこなうように修正。Guiceを使用可能にする以下のファイルをダウンロードし、適当なディレクトリに展開してください。guice-1.0.zipGuiceに関連するJARファイルをWEB-INF/libにコピーします。zipファイルから以下のファイルをWEB-INF/libにコピーしてください。WEB-INF/lib以下のJARファイルを設定してください。これで、JavaプログラムからJARファイル内にあるクラスを参照可能になります。依存部分のインタフェース、および実装クラスを記述します。{サービスのインタフェースの宣言。アノテーションにより、test.mock.MockRepositoryをサービスの実装として使用することを宣言します。サービスの実装を変更したい場合はアノテーションの内容を変更します。};ユーザ情報を定数として宣言。この実装では、ユーザ情報チェック時の処理はこの定数に基づいておこないます。}ユーザ情報の取得処理の実装。}ユーザ情報の取得処理の実装。この実装では、JPAによってデータベースの内容を参照しています。ActionクラスをRepositoryインタフェースを使用するように修正します。SearchAction.java設定ファイルの記述WEB-INF/web.xmlを以下のように修正します。ここでは、GuiceをWEBアプリケーションに組み込むことを指定します。Filterの呼び出し条件。Filterを呼び出します。ここまでのファイルここまででプロジェクトディレクトリの内容は以下のようになります。作成できているか、確認してください。struts2todo_1.zipデバッグまず、MockRepositoryサービスで動作確認をおこないます。ブラウザで以下のURLを開きます。http://localhost:8080/struts2todo/login.action次に、RepositoryインタフェースのImplementedByアノテーションの値をDBRepositoryに変更し、動作確認をおこないます。ブラウザで以下のURLを開きます。