美文网首页
参数校验方法

参数校验方法

作者: 相信灬你一直在 | 来源:发表于2018-11-29 17:37 被阅读0次
    <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    

    第一步

    在参数上标注@Valid


    图片.png

    第二步

    参数上设置属性


    图片.png

    自定义参数校验

    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
    @Retention(RUNTIME)
    @Documented
    @Constraint(validatedBy = {IsMobileValidator.class })
    public @interface  IsMobile {
        
        boolean required() default true;
        
        String message() default "手机号码格式错误";
    
        Class<?>[] groups() default { };
    
        Class<? extends Payload>[] payload() default { };
    }
    

    自定义的Validator

    public class IsMobileValidator implements ConstraintValidator<IsMobile, String> {
    
        private boolean required = false;
        
        public void initialize(IsMobile constraintAnnotation) {
            required = constraintAnnotation.required();
        }
    
        public boolean isValid(String value, ConstraintValidatorContext context) {
            if(required) {
                return ValidatorUtil.isMobile(value);
            }else {
                if(StringUtils.isEmpty(value)) {
                    return true;
                }else {
                    return ValidatorUtil.isMobile(value);
                }
            }
        }
    
    }
    

    自定义的校验代码

    public class ValidatorUtil {
        private static final Pattern mobile_pattern = Pattern.compile("1\\d{10}");
        public static boolean isMobile(String src) {
            if(StringUtils.isEmpty(src)) {
                return false;
            }
            Matcher m = mobile_pattern.matcher(src);
            return m.matches();
        }
    }
    

    相关文章

      网友评论

          本文标题:参数校验方法

          本文链接:https://www.haomeiwen.com/subject/oraaqqtx.html