Java API の開発において、パラメーターの検証は非常に重要なリンクです。 Bean Validation フレームワークを使用すると、パラメーターを簡単に検証して、API パラメーター転送の正当性を確認できます。この記事ではBean Validationの使い方を紹介します。
1. Bean Validation とは何ですか?
Bean Validation は Java EE 6 仕様の一部です。これは、メソッド、コンストラクター、フィールド、プロパティなどの注釈に検証ルールを追加するために使用できる、注釈ベースのパラメーター検証フレームワークです。これらの注釈は、開発者がコード作成段階での入力エラーをより適切に防止し、実行時にユーザー入力エラーを検出してプロンプトを表示するのに役立ちます。
Bean Validation フレームワークは主に次の問題を解決します。
2. Bean Validation はどのように機能しますか?
Bean Validation フレームワークは、検証が必要なパラメーターをマークするためにアノテーションを使用します。これらのアノテーションには、@NotNull、@Min、@Max、@Size、@Pattern などが含まれます。メソッドにパラメータが渡されると、Bean Validation フレームワークは対応する検証ルールを自動的に実行し、検証に失敗するとエラー メッセージを送信します。開発者は、ビジネス ニーズを満たすカスタム検証ルールを作成できます。
Bean Validation フレームワークは、Java Beans のプロパティとメソッド パラメーターに適用できる、事前定義された検証ルールのセットを提供します。事前定義されたルールは次のとおりです。
@NotNull: null 値かどうかを確認します。
@Size: 文字列、コレクション、マップ、および配列の長さを確認します。
@Min, @ Max : 値のサイズを確認します
@Email : メールアドレスかどうかを確認します
@パターン : 正規表現に従って文字列を確認します
Bean Validation フレームワークには、クラスパスに javax.validation-api と、Hibernate Validator などの対応する Bean Validation 実装が含まれています。Maven を介して、次の依存関係を追加できます:
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.10.Final</version> </dependency>
3. Bean Validation example
ユーザーの基本情報を含む User クラスがあり、User クラスの属性を検証する必要があるとします。
public class User { private String name; private Integer age; private String email; private String address; // getters and setters }
プロジェクトで必要な検証ルールは次のとおりです。
Bean Validation を使用してこれらの検証ルールを定義できます。具体的な実装は次のとおりです:
public class UserValidator { private Validator validator; public UserValidator() { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); validator = factory.getValidator(); } /** * 对 User 对象进行校验 * * @param user * @return */ public String validate(User user) { Set<ConstraintViolation<User>> violations = validator.validate(user); StringBuilder result = new StringBuilder(); if (!violations.isEmpty()) { for (ConstraintViolation<User> violation : violations) { result.append(violation.getMessage()).append(";"); } } return result.toString(); } }
UserValidator クラスでは、buildDefaultValidatorFactory によって作成された Validator ツール クラスを使用します。 () メソッド ValidatorFactory オブジェクト。これにより、インスタンス化された Validator オブジェクトが作成されます。ユーザー オブジェクトは、 validator.validate(user) メソッドを呼び出すことで検証できます。検証結果については、すべてのエラー情報を StringBuilder オブジェクトに記録し、呼び出し側に返します。
最後に、テスト クラスで UserValidator オブジェクトを使用してテストを実行できます。
public class UserValidatorTest { @Test void testValidateUser() { User user = new User(); user.setName("abcd"); user.setAge(300); user.setEmail("abc"); user.setAddress(null); UserValidator validator = new UserValidator(); String result = validator.validate(user); assertThat(result, containsString("Name length must be between 5 and 10.")); assertThat(result, containsString("Size must be between 1 and 200.")); assertThat(result, containsString("must be a well-formed email address")); } }
上記のテスト メソッドでは、属性が検証ルールに準拠しない User オブジェクトを作成しました。したがって、UserValidator の validate() メソッドを呼び出すと、対応するエラー メッセージが返されます。
4. 概要
この記事では、Bean Validation フレームワークの概念と使用法を紹介します。このフレームワークは、注釈を通じてパラメータを検証します。これは、開発者がコードを記述する際の入力エラーを防止し、実行時にユーザー入力エラーを検出してプロンプトを表示するのに役立ちます。同時に、開発者はビジネス ニーズに応じてカスタマイズされた検証ルールを作成し、より複雑な検証シナリオに対応できます。
以上がJava API開発におけるパラメータ検証にBean Validationを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。