数据校验的总结

业务层进行复杂检查

简单校验交给Controller校验,能流到业务的层的数据就是基本合法

引入依赖:spring-boot-starter-validation

能标注的所有注解在这两个地方看

jakarta.validation.constraints、

org.hibernate.validator.constraints

使用步骤:先在dto实体类,给各个属性标记上注解@Email

然后在Controller的参数上放上@Valid或@Validated(更推荐,因为Validated多了分组校验)

这样做完之后就可以完成校验,但是还是不能返回前端message里的信息

所以可以在参数后面加一个BingdingResult,就可以返回更完整的校验信息。(如果想校验哪个参数,就在后面加BingdingResult,而不是放最后)。

如果开启了BingdingResult。一旦写了BingdingResult就会封装在BingdingResult中不会抛出异常,前端就不会看到错误,只会收到200。就需要手动处理校验错误

@Validated支持分组功能,对不同请求实现不同的验证逻辑。

实现的话就是定义不同的接口,也就是不同的分组。然后在@Validated的属性里指定不同的验证组即可。

相关推荐
bubiyoushang8886 小时前
基于PSO的列车速度优化MATLAB实现
开发语言·人工智能·matlab
Barkamin6 小时前
(有头)链表的实现(Java)
java·数据结构·链表
乐hh6 小时前
Hadoop 3.3.5 + Flink 1.15.3 集群完整部署手册(3节点标准版)
java·大数据·hadoop·hdfs·zookeeper·flink·yarn
SunnyDays10116 小时前
如何使用 Java 实现自动删除 Word 文档中的空白页或指定页
java·删除 word 文档空白页·删除 word 文档页面
༄天M宇ༀ6 小时前
E10: e-builder 低代码构建平台接口管理(E9建模版)
java·前端·spring·servlet·reactjs
曹牧6 小时前
C#:线程中实现延时等待
开发语言·c#
蜜獾云6 小时前
java 异步编程
java·开发语言
xin^_^6 小时前
java基础学习
java·开发语言·python
yttandb6 小时前
数据库的设计
java·数据库
坐吃山猪6 小时前
Tree-sitter语法树解析
开发语言·python·tree-sitter