当前位置: 首页 > news >正文

数据校验的总结

业务层进行复杂检查
简单校验交给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的属性里指定不同的验证组即可。


http://www.mrgr.cn/news/44978.html

相关文章:

  • 【C语言】自定义类型:结构体
  • 国庆期间的问题,如何在老家访问杭州办公室的网络呢
  • 【AI知识点】激活函数(Activation Function)
  • 基于LORA的一主多从监测系统_框架搭建
  • STM32 HAL 内部FLASH傻瓜式教程 各种型号单片机都适用主要解决网上例程HAL库无法写入问题
  • 【探测器】线阵相机中的 TDI 技术
  • AIGC与BI的融合:永洪开启数据智能新时代
  • Django学习笔记十三:优秀案例学习
  • HCIP-HarmonyOS Application Developer 习题(七)
  • ASK, PSK, FSK, DPSK
  • AI写作工具大比拼:揭秘Claude的神秘魅力以及如何订阅Claude
  • C语言的柔性数组
  • 《Linux从小白到高手》进阶实操篇:用户及权限有关的实际工作场景应用
  • 【鸿蒙开发】深入理解鸿蒙开发中的@State装饰器:掌握组件内状态管理
  • 密码学:古典密码.代替密码.仿射密码加密与解密 (广义欧几里得除法)
  • 【Nacos入门到实战十四】Nacos配置管理:集群部署与高可用策略
  • 【黑群晖】记录一次黑群突然重启后无法开机的处理经过
  • 内核缓冲区、用户缓冲区、中断服务
  • 2-115 基于matlab的瞬态提取变换(TET)时频分析
  • 源码分析之blip2的ITC和ITM的具体实现