SpringBoot数据校验

  1. 添加pom依赖

    <dependency>    <groupId>org.spring work.boot</groupId>    <artifactId>spring-boot-starter-validation</artifactId></dependency>
  2. 编写实体类

    /** * @author wsyjlly * @create 2019.06.29 - 12:18 **/@AllArgsConstructor@NoArgsConstructor@Accessors@Data@TableName(value = "message")public class Message implements Serializable {    private Integer id;    private Integer mid;    @Size(min = 5,max = 10,message = "{message.content.size}")    @NotNull(message = "{message.content.notnull}")    private String content;    @Size(min = 5,max = 10,message = "{message.column1.size}")    @NotNull(message = "{message.column1.notnull}")    @TableField(value = "column_200")    private String column1;    @Size(min = 5,max = 10,message = "{message.column2.size}")    @NotNull(message = "{message.column2.notnull}")    @TableField(value = "column_500")    private String column2;    @Size(min = 5,max = 10,message = "{message.column3.size}")    @NotNull(message = "{message.column3.notnull}")    @TableField(value = "column_5000")    private String column3;}
  3. ValidationMessages.properties配置

    message.content.notnull=该字段不能为空message.column1.notnull=该字段不能为空message.column2.notnull=该字段不能为空message.column3.notnull=该字段不能为空message.content.size=内容长度过短message.column1.size=内容长度过短message.column2.size=内容长度过短message.column3.size=内容长度过短

    1563358182687

  4. Controller校验

    /** * @author wsyjlly * @create 2019.07.17 - 17:34 **/@RestController@RequestMapping("/message")public class MessageController {    @PostMapping("/validate")    public List validate(@RequestBody @Validated Message message, BindingResult result){        System.out.println(message);        ArrayList< > list = new ArrayList<>();        if (result.hasErrors()) list.addAll(result.getAllErrors());        for ( Error item : result.getAllErrors()){            System.out.println(item);        }        list.add(message);        return list;    }}
  5. 分组校验

    • 创建分组接口

      /** * @author wsyjlly * @create 2019.07.17 - 18:29 **/@Componentpublic interface ValidationGroup1 {}
      /** * @author wsyjlly * @create 2019.07.17 - 18:29 **/@Componentpublic interface ValidationGroup2 {}
    • 实体类添加分组

      /** * @author wsyjlly * @create 2019.06.29 - 12:18 **/@AllArgsConstructor@NoArgsConstructor@Accessors@Data@TableName(value = "message")public class Message implements Serializable {    private Integer id;    private Integer mid;    @Size(min = 5,max = 10,message = "{message.content.size}")    @NotNull(message = "{message.content.notnull}")    private String content;    @Size(min = 5,max = 10,message = "{message.column1.size}")    @NotNull(message = "{message.column1.notnull}")    @TableField(value = "column_200")    private String column1;    @Size(min = 5,max = 10,message = "{message.column2.size}",groups = ValidationGroup1.class)    @NotNull(message = "{message.column2.notnull}")    @TableField(value = "column_500")    private String column2;    @Size(min = 5,max = 10,message = "{message.column3.size}",groups = {ValidationGroup1.class, ValidationGroup2.class})    @NotNull(message = "{message.column3.notnull}")    @TableField(value = "column_5000")    private String column3;}
    • Controller校验指定分组

      /** * @author wsyjlly * @create 2019.07.17 - 17:34 **/@RestControllerpublic class ValidateController {    @PostMapping("/validate1")    public List validate(@RequestBody @Validated Message message, BindingResult result){        System.out.println(message);        ArrayList< > list = get s(result);        list.add(message);        return list;    }        @PostMapping("/validate2")    public List validate2(@RequestBody @Validated(ValidationGroup1.class) Message message, BindingResult result){        System.out.println(message);        ArrayList< > list = get s(result);list.add(message);        return list;    }        @PostMapping("/validate3")    public List validate3(@RequestBody @Validated(ValidationGroup2.class) Message message, BindingResult result){        System.out.println(message);        ArrayList< > list = get s(result);        list.add(message);        return list;    }    private ArrayList< > get s(BindingResult result) {        ArrayList< > list = new ArrayList<>();        if (result.hasErrors()) {            for ( Error item : result.getAllErrors()) {                list.add(item.getDefaultMessage());                System.out.println(item.getDefaultMessage());            }        }        return list;    }}
收藏 打印