数据校验的总结

业务层进行复杂检查

简单校验交给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的属性里指定不同的验证组即可。

相关推荐
雨季66617 分钟前
构建 OpenHarmony 简易文字行数统计器:用字符串分割实现纯文本结构感知
开发语言·前端·javascript·flutter·ui·dart
雨季66619 分钟前
Flutter 三端应用实战:OpenHarmony 简易倒序文本查看器开发指南
开发语言·javascript·flutter·ui
小北方城市网27 分钟前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
进击的小头37 分钟前
行为型模式:策略模式的C语言实战指南
c语言·开发语言·策略模式
天马37981 小时前
Canvas 倾斜矩形绘制波浪效果
开发语言·前端·javascript
六义义1 小时前
java基础十二
java·数据结构·算法
Tansmjs1 小时前
C++与GPU计算(CUDA)
开发语言·c++·算法
qx091 小时前
esm模块与commonjs模块相互调用的方法
开发语言·前端·javascript
Suchadar1 小时前
if判断语句——Python
开发语言·python
毕设源码-钟学长2 小时前
【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端