通过实现ConstraintValidator完成自定义校验注解(使用@Validated 或者@Valid 开启校验)

使用@Validated 或者@Valid 开启校验

实体类定义如下:

@AllArgsConstructor

@NoArgsConstructor

@Data

public class TaskCountStatisticsQueryVO {

private StringprocessorName;

    @DateRangeCheck(message ="时间不合法")

    private DateRangeVOfinishTime;

}

自定义注解 DateRangeCheck

@Documented

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.FIELD, ElementType.METHOD})

@Constraint(

validatedBy = {DateRangeValidator.class}

)

public @interface DateRangeCheck {

String message()default "时间范围校验失败";

    Class[] groups()default {};

    Class[] payload()default {};

}

其中

@Constraint(

validatedBy = {DateRangeValidator.class}

)

DateRangeValidator 是校验方法

需要实现 ConstraintValidator 类 其中  DateRangeCheck 是注解类 DateRangeVO 是校验对象

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你是否一直被入参的校验困扰,写着ifelseifelse的垃圾代码。你是否也幻想只要使用一行代码就完事,就像这样:...
    OoldHu阅读 2,243评论 0 0
  • [TOC] 简介 后端编程中,通常对于前端传递过来的数据,我们都需要进行校验,确保数据正确且安全。 最直接的方法当...
    Whyn阅读 2,641评论 0 2
  • 一切从元编程开始 一个健壮的系统都要对外部提交的数据进行完整性、合法性的校验。即使开发一个不面对最终用户的工具包,...
    零点145阅读 2,640评论 1 0
  • 编写注解类 @Target({ElementType.METHOD, ElementType.FIELD, Ele...
    填坑二十年阅读 269评论 0 0
  • 字段注解 字段注解一般是用于校验字段是否满足要求,hibernate-validate依赖就提供了很多校验注解 ,...
    LcChina_9527阅读 277评论 0 0