Validation实现自定义校验

时间:2025-03-11 07:54:36

首先,我们先看一下valid自带的长度校验Length的源码,我将下面源码的注解作出一定的解释

// 指示注解应该记录在生成的Javadoc中,确保自定义注解在生成的文档中可见,便于了解其功能和用途
@Documented
// 指定用于验证该注解的验证器类,之后我们把自定义的校验器类名写在这里即可
@Constraint(
    validatedBy = {}
)
// 指定注解可以应用的Java元素类型
@Target({, , ElementType.ANNOTATION_TYPE, , , ElementType.TYPE_USE})
// 指定注解的保留策略,此处为“运行时保留”,还有“编译时保留”和“只在源码中存在”
@Retention()
使注解可以在同一个元素上多次应用
@Repeatable()
public @interface Length {
    int min() default 0;

    int max() default Integer.MAX_VALUE;

    String message() default "{}";

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

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

    @Target({, , ElementType.ANNOTATION_TYPE, , Ele