まず、キャリアパッケージの導入
Mavenのアドレスが 離れてクリックしてください。
<! - https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator - >
<依存>
<groupIdを> org.hibernate.validator </ groupIdを>
<たartifactId> </たartifactId-バリデータは休止状態>
<バージョン> 6.0.16.Final </バージョン>
</依存関係>
第二に、バリデータパッケージを作成します
1.テンプレートのリターンを作成し、
パブリック クラスValidationResult {の // エラーのテスト結果 プライベート ブール hasErrorsの=をfalseに; // 店の地図情報エラー プライベート地図<文字列、文字列> = errorMsgMap 新しい新しい HashMapの<> (); パブリック ブールisHasErrors(){ 返すhasErrorsを; } 公共 ボイド setHasErrors(ブールザhasErrors){ この .hasErrors = hasErrors; } パブリックマップ<文字列、文字列> getErrorMsgMap(){ 戻りerrorMsgMapと、 } 公共 ボイド setErrorMsgMap(MAP <文字列、文字列> errorMsgMap){ この .errorMsgMap = errorMsgMap; } // 偽結果MSG一般の実現方法求める書式文字列情報によって パブリック文字列getErrMsgを(){ 戻り StringUtils.join(errorMsgMap 。.values()のtoArray() "" ); } }
2.チェッカーを実装するクラスを作成します。
@Component パブリック クラス ValidatorImplは実装InitializingBean { プライベートバリデータバリデータを、 // 实现效验方法并返回检验结果 公共ValidationResultの検証(オブジェクト・ビーン){ 最終 ValidationResult結果= 新しいValidationResult()。 設定 <ConstraintViolation <オブジェクト>> constraintViolationSet = validator.validate(豆)。 もし(constraintViolationSet.size()> 0 ){ // 有错误 result.setHasErrors(真)。 constraintViolationSet.forEach(constraintViolation - >{ 文字列たerrMsgアン = constraintViolation.getMessage(); 文字列プロパティ名 = constraintViolation.getPropertyPath()のtoString();. Result.getErrorMsgMap()PUT(propertyNameの、たerrMsg AN); }); } 戻り値の結果; } @Override 公共 ボイド afterPropertiesSet( )スロー例外{ // 植物によって初期化休止validtorは、それがインスタンス化させる この .validator = Validation.buildDefaultValidatorFactory()getValidatorを();. } }
第三に、クラスjavaBeanVoに注釈を追加
パブリック クラスUserModel { プライベート整数上記のid; @NotBlank(メッセージ =「ユーザー名を空白にすることはできません」) プライベート文字列名; @NotNull(メッセージ =「埋めることはできないセックス」) のプライベートバイトの性別を、 @NotNull(メッセージ =「年齢のことはできません塗りつぶし「) @min(値 = 0を、メッセージ=」年齢は、0より大きくなければなりません「) @max(値 = 150、メッセージ=」私はあなたに多くの幸せなリターンを望む、150歳の年齢で(どちらキャップを職員に連絡してください)」) プライベート整数年齢; @NotBlank(メッセージ =「電話番号は空にすることはできません」) プライベート文字列の携帯電話。 プライベート文字列のregisterMode。 プライベート文字列thirdPartyId; @NotBlank(メッセージ =「パスワードが空白でない」) プライベート文字列encrptPassword; }
第四に、練習
@Autowired ValidatorImplバリデータ。 // 方法内写 ValidationResult結果= validator.validate(userModel)。 もし(result.isHasErrors()){ スロー 新しいBusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR、result.getErrMsgを())。 }