@ValidateNum

153 阅读1分钟
import com.megvii.performance.config.NumValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * @创建人 chenlei
 * @创建日期 2020/5/12
 * @描述
 */

@Target({ElementType.FIELD, ElementType.PARAMETER})
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NumValidator.class)
public @interface ValidateNum {

    String message() default "";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}
import com.megvii.performance.common.annotation.ValidateNum;
import org.apache.commons.lang3.StringUtils;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.regex.Pattern;

/**
 * @创建人 chenlei
 * @创建日期 2020/5/12
 * @描述
 */
public class NumValidator implements ConstraintValidator<ValidateNum, String> {

    @Override
    public boolean isValid(String code, ConstraintValidatorContext constraintValidatorContext) {
        if (StringUtils.isEmpty(code)){
            return true;
        }
        return Pattern.matches("^(-?)\d+[.]?\d*$", code);
    }

}