カスタム@Validatedコメント

最初は、カスタム@Validatedノートです。

@Target({メソッド、フィールド、ANNOTATION_TYPEコンストラクタ、PARAMETER})
@Retention(RUNTIME)
@Documented 
@Constraint(validatedBy = { IsMobileValidatorクラス})
 パブリック @ インタフェースIsMobile {
     // デフォルトのパラメータは、この持っている必要が
    ブール(必須)デフォルト はtrue ;
     // チェックがどのような情報を示唆し、渡されない場合は 
    文字列メッセージ()デフォルトの「電話番号フォーマットエラー」; 
    クラス []グループ()<?> デフォルト{}; 
    クラス <?延びペイロード> []ペイロード()デフォルト{}; 
}

IsMobileValidatorこの注釈は、クラスに特異的です:

SLF4J @
 パブリック クラス IsMobileValidator  実装 ConstraintValidator < IsMobile、文字列> {
     プライベート ブールは必要= 偽を; 
    @Override 
    公共 ボイドイニシャライズ(IsMobile constraintAnnotation){
         // 初始化方法、拿到注解 
        必要= constraintAnnotation.required()。
        log.info( + ":: ======== >>>>方法初期化する" 必要)。
    } 

    @Override 
    パブリック ブールのisValid(String値、ConstraintValidatorContextコンテキスト){ 
        log.info("isValidメソッド======== >>>> ::" + 値);
         IF(必須){          // この値が必要な場合
            、戻りValidatorUtil.isMobile(値); 
        }  {                 // この場合値は、値がない最初の判断は必要ありません
            IF (StringUtils.isEmpty(値)){
                 リターン trueに; 
            } {
                 リターン ValidatorUtil.isMobile(値);    // フォーマットは、彼の携帯電話の形式ではないかを判断する価値があります
            } 
        } 
    } 
}

utilの具体的な方法が実現されます。

パブリック クラスValidatorUtil {
     プライベート 静的 最終的な文字列の正規表現=「^((13 [0-9])|(14 [5 | 7])|(15([0-3] | [5-9]))|(17 [013678])|(18 [0,5-9]))\\ D {8} $」プライベート 静的な 最終パターンmobile_pattern = Pattern.compile(正規表現)。

    パブリック 静的 ブールisMobile(列src){
         場合(StringUtils.isEmpty(SRC)){
             戻り 
        } 
        マッチャM = mobile_pattern.matcher(SRC)。
        リターンm.matches(); 
    } 
}

おすすめ

転載: www.cnblogs.com/zhiweiXiaomu/p/12191582.html