65.2. Bean Validation を使用したサービスの開発
65.2.1. サービス Bean のアノテーション リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
Bean 検証でサービスを開発する最初のステップは、関連する検証アノテーションをサービスを表す Java クラスまたはインターフェイスに適用することです。検証アノテーションを使用すると、メソッドパラメーター、戻り値、およびクラスフィールドに制約を適用でき、サービスが呼び出されるたびに、実行時にチェックされます。
単純な入力パラメーターの検証 リンクのコピーリンクがクリップボードにコピーされました!
パラメーターが簡単な Java 型である場合にサービスメソッドのパラメーターを検証するには、Bean バリデーション API (javax.validation.constraints
パッケージ) から制約アノテーションを適用できます。たとえば、以下のコード例は、nullness (@NotNull
アノテーション) の両方のパラメーターをテストし、id
文字列が \\d+
正規表現 (@Pattern
アノテーション) と一致するかどうか、および name
文字列の長さが 1 から 50 の範囲にあるかどうかをテストします。
複雑な入力パラメーターの検証 リンクのコピーリンクがクリップボードにコピーされました!
複雑な入力パラメーター (オブジェクトインスタンス) を検証するには、以下の例のように @Valid
アノテーションをパラメーターに適用します。
@Valid
アノテーションは、単独では制約を指定しません。Book パラメーターに @Valid
のアノテーションを付けると、検証制約を探すために (再帰的に) Book
クラスの定義内を調べるように、検証エンジンを効果的に指示します。この例では、以下のように、Book
クラスは id
および name
フィールドの検証制約で定義されます。
戻り値の検証 (応答以外) リンクのコピーリンクがクリップボードにコピーされました!
通常のメソッドの戻り値 (応答以外) に検証を適用するには、メソッド署名の前にアノテーションを追加します。たとえば、nullness (@NotNull
アノテーション) の戻り値をテストし、検証の制約を再帰的にテストするには (@Valid
アノテーション)、以下のように getBook
メソッドにアノテーションを付けます。
戻り値 (応答) の検証 リンクのコピーリンクがクリップボードにコピーされました!
javax.ws.rs.core.Response
オブジェクトを返すメソッドに検証を適用するには、Response 以外のケースと同じアノテーションを使用できます。以下に例を示します。