数据校验的总结

业务层进行复杂检查

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

相关推荐
雪雪爱冲浪1 分钟前
JavaScript 网络爬虫教程(2026)
开发语言·javascript·爬虫
要吃这碗饭17 分钟前
JavaScript 网络爬虫教程(2026)
开发语言·javascript·爬虫
czq_268671948718 分钟前
Python打卡第40天
开发语言·python
yangmu320321 分钟前
Unity 开发过程与底层原理
java·开发语言
不爱吃鱼的蔓热莓21 分钟前
Autosar之根据ARXML中报文信息生成SWC(二)
开发语言·python
lexiangqicheng23 分钟前
自定义表单跨端共用机制-PC设计APP渲染
java·前端·javascript
奈葵24 分钟前
Python语句
开发语言·python
zhikouai26 分钟前
AI辅助逆向工程链路:从二进制接入到等价性校验
java·linux·前端
紫洋葱hh35 分钟前
Go 入门基础:类型、变量与运算符
开发语言·后端·ai·golang
随性而行36038 分钟前
企业微信API接口开发实战:如何实现消息回调接收与业务事件处理?
java·前端·python·微信·机器人·企业微信