SpringBoot数据校验
添加pom依赖
<dependency> <groupId>org.spring work.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency>编写实体类
/** * @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;}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=内容长度过短
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; }}分组校验
创建分组接口
/** * @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; }}
继续阅读与本文标签相同的文章
上一篇 :
SpringBoot ~ 应用监控
-
SpringBoot ~ Restful请求风格
2026-05-20栏目: 教程
-
SpringBoot ~ 拦截器
2026-05-20栏目: 教程
-
SpringBoot ~ AOP切面编程
2026-05-20栏目: 教程
-
SpringBoot ~ 启动系统任务
2026-05-20栏目: 教程
-
SpringBoot ~ 定时任务@Scheduled
2026-05-20栏目: 教程
