自定义校验入参注解

最近写开放文档,接口参数校验要求特别严,

javax.validation的默认入参校验已经满足不了业务需求,因此需要自定义的入参校验。

首先看一下使用方法,和默认的注解用法一致

然后看一下注解的定义

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = CheckChannelNumImpl.class)
public @interface CheckChannelNum {
    String message() default "通道号不正确";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}
最后就是代码的实现了
public class CheckChannelNumImpl implements ConstraintValidator<CheckChannelNum,String> {
    @Override
    public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
        if (value == null){
            return true;
        }
        if (value.length() > 8){
            return false;
        }
        return CommonUtil.isPositiveInteger(value);
    }
}

返回false则代表校验失败


版权声明:本文为Huiger1234原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。