1.定义注解
package com.xl.annotation;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Target({
ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = {
MobileValidate.class})
public @interface MobilePattern {
String message() default "Invalid phone number";
Class<?>[] groups() default {
};
Class<? extends Payload>[] payload() default {
};
}
2.注解实现类
package com.xl.annotation;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MobileValidate implements ConstraintValidator<MobilePattern, String> {
@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
Pattern p = Pattern.compile("((13[0-9])|(14[5,7])|(15[^4,\\D])|(17[0,1,3,6-8])|(18[0-9])|(19[8,9])|(166))[0-9]{8}$");
Matcher m = p.matcher(s);
return m.matches();
}
}
3.自定义注解抛出异常类
package com.xl.annotation;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind