1.自定义注解@IsMobile
@Documented
@Constraint(
validatedBy = ValidateMobile.class //校验类
)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
public @interface IsMoblie {
String message() default "手机号错误";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
2.校验类实现 ConstraintValidator
public class ValidateMobile implements ConstraintValidator<IsMoblie,String> {
@Override
public void initialize(IsMoblie constraintAnnotation) {
}
/**
* 校验手机号
* @param s 传入参数
* @param constraintValidatorContext
* @return
*/
@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
if (StrUtil.isNotBlank(s)) {
return PhoneUtil.isMobile(s); //hutool工具类
} else {
return false;
}
}
}
除了校验手机号之外,可以自行扩展,比如身份证,年龄.............