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;
        }
    }
  • 相关阅读:
    Codeforces Round #172 (Div. 2) B. Nearest Fraction
    什么是DWR
    1310 N皇后问题
    ural Bus Routes(dfs深搜)
    ural Russian Pipelines(最短路)
    ural Graph Decomposition
    ural Network ( 最小生成树)
    poj 1579 Function Run Fun ( 记忆化搜索 )
    计算某一天的前一天的日期
    DataStructGraphpart1
  • 原文地址:https://www.cnblogs.com/se7end/p/14122830.html
Copyright © 2011-2022 走看看