zoukankan      html  css  js  c++  java
  • SpringBoot自定义validation验证

    注解类

    import javax.validation.Constraint;
    import javax.validation.Payload;
    import java.lang.annotation.Documented;
    import java.lang.annotation.Retention;
    import java.lang.annotation.Target;
    
    import static java.lang.annotation.ElementType.*;
    import static java.lang.annotation.RetentionPolicy.RUNTIME;
    
    @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
    @Retention(RUNTIME)
    @Documented
    @Constraint(validatedBy = StringLengthValidator.class)
    public @interface StringLength {
    
        // 必须加
        String message() default "{javax.validation.constraints.NotNull.message}";
    
        // 必须加
        Class<?>[] groups() default {};
    
        // 必须加
        Class<? extends Payload>[] payload() default {};
    
        int minLength() default 0;
    
        int maxLength() default 16;
    }

    验证实现类

    import javax.validation.ConstraintValidator;
    import javax.validation.ConstraintValidatorContext;
    import java.util.Objects;
    
    public class StringLengthValidator implements ConstraintValidator<StringLength, Object> {
    
        private StringLength stringLength;
    
        @Override
        public void initialize(StringLength constraintAnnotation) {
            this.stringLength = constraintAnnotation;
        }
    
        @Override
        public boolean isValid(Object value, ConstraintValidatorContext context) {
            if (Objects.isNull(value)) {
                return true;
            }
            if (null != stringLength) {
                int length = String.valueOf(value).length();
                int maxLen = stringLength.maxLength(),
                        minLen = stringLength.minLength();
                return length >= minLen && length <= maxLen;
            }
            return false;
        }
    }
  • 相关阅读:
    NewtonSoft.Json
    属性
    csv文件
    C#和递归算法实现删除,清空,拷贝目录
    朴素贝叶斯应用:垃圾邮件分类
    压缩图片
    numpy分布图
    鸢尾花
    numpy数组及处理:效率对比
    完整的中英文词频统计
  • 原文地址:https://www.cnblogs.com/se7end/p/14122830.html
Copyright © 2011-2022 走看看