SpringBoot ~ 数据校验
SpringBoot数据校验
-
添加pom依赖
<dependency> <groupId>org.springframework.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<Object> list = new ArrayList<>(); if (result.hasErrors()) list.addAll(result.getAllErrors()); for (ObjectError item : result.getAllErrors()){ System.out.println(item); } list.add(message); return list; } }
-
分组校验
-
创建分组接口
/** * @author wsyjlly * @create 2019.07.17 - 18:29 **/ @Component public interface ValidationGroup1 {}
/** * @author wsyjlly * @create 2019.07.17 - 18:29 **/ @Component public 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 **/ @RestController public class ValidateController { @PostMapping("/validate1") public List validate(@RequestBody @Validated Message message, BindingResult result){ System.out.println(message); ArrayList<Object> list = getObjects(result); list.add(message); return list; } @PostMapping("/validate2") public List validate2(@RequestBody @Validated(ValidationGroup1.class) Message message, BindingResult result){ System.out.println(message); ArrayList<Object> list = getObjects(result); list.add(message); return list; } @PostMapping("/validate3") public List validate3(@RequestBody @Validated(ValidationGroup2.class) Message message, BindingResult result){ System.out.println(message); ArrayList<Object> list = getObjects(result); list.add(message); return list; } private ArrayList<Object> getObjects(BindingResult result) { ArrayList<Object> list = new ArrayList<>(); if (result.hasErrors()) { for (ObjectError item : result.getAllErrors()) { list.add(item.getDefaultMessage()); System.out.println(item.getDefaultMessage()); } } return list; } }
-
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SpringBoot ~ 定时任务Quartz
定时任务Quartz quartz是一个功能丰富的开源作业调度库 添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> 创建定时Job 通过普通JavaBean创建,添加@Component注解将之注册到容器 /** * @author wsyjlly * @create 2019.07.17 - 14:40 **/ @Component public class ScheduleDemo2 { public void schedule(){ System.out.println("ScheduleDemo2.schedule..."); } } 通过继承抽象类QuartzJobBean创建,该方式需要实现该类中的executeInternal方法,该方法在任务被调用时使用。 /** * @author wsy...
- 下一篇
SpringBoot 整合 MybatisPlus 3.0
SpringBoot整合MybatisPlus 3.0 添加pom依赖 <!-- druid数据库连接池启动器 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.9</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> <version>5.1.46</version> </dependency> <!-- mybatis-plus启动器 --> <dependency...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7安装Docker,走上虚拟化容器引擎之路