数据校验的总结

业务层进行复杂检查

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

相关推荐
wjs20244 分钟前
Go 语言类型转换
开发语言
菩提祖师_5 分钟前
基于Java的物联网智能交通灯控制系统
java·开发语言·物联网
公众号:ITIL之家10 分钟前
服务价值体系重构:在变化中寻找不变的运维本质
java·运维·开发语言·数据库·重构
自在极意功。14 分钟前
Spring 中 Bean 的生命周期
java·spring·bean生命周期
zhaokuner16 分钟前
01-领域与问题空间-DDD领域驱动设计
java·开发语言·设计模式·架构
、BeYourself21 分钟前
Spring AI RAG 系统文档加载
java·后端·spring·springai
cike_y23 分钟前
Spring:代理模式之静态代理&动态代理
java·后端·spring·代理模式
青岛少儿编程-王老师24 分钟前
CCF编程能力等级认证GESP—C++8级—20251227
java·开发语言·c++
任子菲阳26 分钟前
学JavaWeb第六天——JDBC & Mybatis
java·数据库·mybatis
charlie11451419128 分钟前
FreeRTOS:中断(ISR)与 RTOS 安全 API
开发语言·c·freertos·实时操作系统