数据校验的总结

业务层进行复杂检查

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

相关推荐
凯瑟琳.奥古斯特5 小时前
力扣1235:加权区间调度最优解
java·python·算法·leetcode·职场和发展
_童年的回忆_5 小时前
【php】在linux下PHP安装amqp扩展
linux·开发语言·php
想不到ID了6 小时前
第八篇: 登录注册功能实现
java·javascript
AIMath~6 小时前
python中的uv命令揭秘
开发语言·python·uv
码语智行6 小时前
shp文件生成
java
弹简特6 小时前
【零基础学Python】06-Python模块和包、异常处理、文件常用操作
开发语言·python
x***r1516 小时前
Postman-win64-7.2.2-Setup安装步骤详解(附API接口测试与参数配置教程)
开发语言·lua
plainGeekDev6 小时前
AlertDialog → DialogFragment
android·java·kotlin
念恒123066 小时前
Python 面向对象编程核心:对象、实例化、封装与变量作用域
开发语言·python
薛定谔的悦6 小时前
光伏-储能-负荷联合预测:给 EMS 装上“预知能力“
java·数据库·人工智能·python·储能