ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

F.7.5 ビジネスロジックに共通な前処理、後処理をまとめて記述したい

前処理用、後処理用のメソッドを作成しておくことにより、ビジネスクラスの呼び出し前後に実行させることができます。 前処理用、後処理用のメソッドは、ビジネスクラスごとに、または全ビジネスクラスで共通に使用されます。

前処理用のメソッドを作成する

前処理用のメソッドは次のように作成します。

  1. ビジネスクラスにcom.fujitsu.uji.Preprocessorインタフェースを実装します。GenericHandlerクラスを継承してビジネスクラスを作成している場合はこの作業は不要です。GenericHandlerクラスがPreprocessorを実装しているためです。

  2. ビジネスクラスにpreprocessメソッドを作成し、そこに前処理を記述します。

アプリケーションがリクエストを受信すると、ビジネスクラスのメソッドが呼ばれますが、その前にそのビジネスクラスのpreprocessメソッドが呼ばれます。

preprocessメソッドの復帰値により、その後の処理を制御できます。

復帰値

意味

Preprocessor.EVAL

ビジネスクラスの処理を継続します

Preprocessor.SKIP_DISPATCH

ビジネスクラスのメソッドを呼び出さず、後処理のみ実行します

Preprocessor.SKIP_ALL

ビジネスクラスの呼び出しも後処理の実行も行いません

全ビジネスクラスに共通の前処理を作成する場合は、ビジネスクラスではなくセションクラスにPreprocessorインタフェースを実装しpreprocessメソッドを作成します。 セションクラスのpreprocessメソッドは、どのビジネスクラスのメソッドが呼ばれる場合でも、その前に呼び出されます。

後処理用のメソッドを作成する

後処理用のメソッドは次のように作成します。

  1. ビジネスクラスにcom.fujitsu.uji.Postprocessorインタフェースを実装します。GenericHandlerクラスを継承してビジネスクラスを作成している場合はこの作業は不要です。GenericHandlerクラスがPostprocessorを実装しているためです。

  2. ビジネスクラスにpostprocessメソッドを作成し、そこに後処理を記述します。

アプリケーションがリクエストを受信すると、ビジネスクラスのメソッドが呼ばれますが、正常に(例外をスローせずに)終了した場合、続いてそのビジネスクラスのpostprocessメソッドが呼ばれます。

全ビジネスクラスに共通の後処理を作成する場合は、ビジネスクラスではなくセションクラスにPostprocessorインタフェースを実装しpostprocessメソッドを作成します。 セションクラスのpostprocessメソッドは、どのビジネスクラスのメソッドが呼ばれる場合でも、そのあとに呼び出されます。

PostprocessorがhandleExceptionメソッドを持つため、以下の場合はhandleExceptionメソッドも実装する必要があります。handleExceptionメソッドについては“F.7.4 ビジネスクラスのメソッドで発生した例外をまとめて処理したい”を参照してください。

関連項目