数据校验的总结

业务层进行复杂检查

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

相关推荐
小草cys几秒前
HarmonyOS Next调用高德api获取实时天气,api接口
开发语言·python·arkts·鸿蒙·harmony os
爬山算法几秒前
Netty(25)Netty的序列化和反序列化机制是什么?
开发语言·python
C+++Python4 分钟前
Java 锁机制
java·开发语言
czlczl200209255 分钟前
Spring Security 6 :配置生产级 SecurityFilterChain
java·spring
龘龍龙5 分钟前
Python基础学习(六)
开发语言·python·学习
Java小白,一起学习9 分钟前
AndroidStudio安装教程
java·android-studio
学编程就要猛10 分钟前
算法:3.快乐数
java·算法
高山上有一只小老虎10 分钟前
如何下载并使用Memory Analyzer (MAT)
java·jvm
华仔啊15 分钟前
Java 开发必看:什么时候用 for,什么时候用 Stream?
java·后端
未来之窗软件服务16 分钟前
幽冥大陆(五十八)php1024位密码生成—东方仙盟筑基期
开发语言·算法·仙盟创梦ide·东方仙盟