数据校验的总结

业务层进行复杂检查

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

相关推荐
瞭望清晨几秒前
Python多进程使用场景
开发语言·python
tHeya06II17 分钟前
涵盖 Cursor、Claude Code、Skills
java·服务器
kim_puppy18 分钟前
TCP的三次握手,四次挥手
java·网络·tcp
诗人不写诗19 分钟前
spring boot apm生态
java·数据库·spring boot
海参崴-20 分钟前
C++代码格式规范
java·前端·c++
怎么没有名字注册了啊25 分钟前
崩溃解决_Qt子窗口关闭按钮后打开崩溃
开发语言·qt
Dxy123931021633 分钟前
JavaScript 如何捕获异常:从基础到进阶的完整指南
开发语言·javascript·udp
better_liang43 分钟前
每日Java面试场景题知识点之-Redisson热门使用场景
java·redis·微服务·分布式锁·redisson·分布式系统
2301_792674861 小时前
java学习 day26
java
!停1 小时前
C++入门—初阶模板
开发语言·c++