1 import javax.validation.ConstraintValidator; 2 import javax.validation.ConstraintValidatorContext; 3 4 import org.apache.commons.lang3.StringUtils; 5 6 import com.imooc.miaosha.util.ValidatorUtil; 7 8 /** 9 * 自定义注解 约束 10 */ 11 public class IsMobileValidator implements ConstraintValidator<IsMobile, String> { 12 13 private boolean required = false; 14 15 /** 16 * 17 * @param constraintAnnotation 该注解的实体对象 18 */ 19 public void initialize(IsMobile constraintAnnotation) { 20 required = constraintAnnotation.required(); 21 } 22 23 /** 24 * 25 * @param value 标注注解的字段值 26 * @param context 约束的上下文 27 * @return false 表示校验没有通过,会抛出绑定异常 BindException 给框架 28 */ 29 public boolean isValid(String value, ConstraintValidatorContext context) { 30 if(required) { 31 return ValidatorUtil.isMobile(value); 32 }else { 33 if(StringUtils.isEmpty(value)) { 34 return true; 35 }else { 36 return ValidatorUtil.isMobile(value); 37 } 38 } 39 } 40 41 }