1. 创建一个注解类 IsMobile
![9bcc9e04da33467e9c55f9075bd95cc0.png](https://i-blog.csdnimg.cn/blog_migrate/a78a3ce0b1c162bdc1e8a933b63d67d1.png)
代码:
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(
validatedBy = {IsMobileValidator.class}
)
public @interface IsMobile {
boolean required() default true;
String message() default "手机号格式错误";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
2. 创建校验类
![0d44f856ead442f08c2a3be752e4ca36.png](https://i-blog.csdnimg.cn/blog_migrate/015159cfba7799c7a5485bc33bbf54af.png)
代码:
public class IsMobileValidator implements ConstraintValidator<IsMobile,String> {
private boolean required = false;
@Override
public void initialize(IsMobile constraintAnnotation) {
required = constraintAnnotation.required();
}
@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
if(required){
return ValidatorUtil.isMobile(s);
}
else{
if(StringUtils.isEmpty(s)){
return true;
}
else{
return ValidatorUtil.isMobile(s);
}
}
}
}
3. 使用
![a20cd844048849feac12bb0b2326350a.png](https://i-blog.csdnimg.cn/blog_migrate/56bc328ccf31f1bb4ecfe3acf78dab74.png)