美文网首页
JSR303 之 @Validated + @Valid 实现嵌

JSR303 之 @Validated + @Valid 实现嵌

作者: 炒面Z | 来源:发表于2020-06-19 14:18 被阅读0次

1.名词定义解释

JSR303

  • JSR是Java Specification Requests的缩写,意思是Java 规范提案
  • JSR303 指 Bean Validation 1.0 (JSR 303)

注解 @Validated + @Valid

  • @Valid 是标准JSR-303规范,由javax提供
  • @Validated 由Spring Validation验证框架提供,是 Spring’s JSR-303规范,是标准JSR-303的一个变种

2.校验使用场景

对入参的数组对象的每个子元素对象作参数校验,实现对入参元素的嵌套校验

  • 1.在控制器层,需要使用 @Validated 注解
  • 2.在数组属性上使用 @Valid 注解

demo源码

    @PostMapping(value = "/savePoints")
    public Result savePoints(@Validated @RequestBody KidPointDto dto) {
        return kidPointService.savePoints(dto);
    }
@Data
public class KidPointDto implements Serializable {
    private static final long serialVersionUID = -8000551611072121475L;
    @NotNull(message = "课程ID不能为空")
    private Long ccCourseId;

    @Valid
    @Size(min = 1, message = "数组至少需要一个元素")
    private List<SinglePointModel> pointList;
}
@Data
public class SinglePointModel implements Serializable {
    private static final long serialVersionUID = -5004183222932545560L;

    @NotNull(message = "学员id不能为空")
    private Long kidId;

    @NotNull(message = "积分(金币)数不能为空")
    @Range(min = 0, max = 1000, message = "积分(金币)数范围必须在0-1000之间")
    private Integer points;
}

相关文章

网友评论

      本文标题:JSR303 之 @Validated + @Valid 实现嵌

      本文链接:https://www.haomeiwen.com/subject/iimvxktx.html