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

数据校验的总结

业务层进行复杂检查
简单校验交给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.kler.cn/a/331551.html

相关文章:

  • 【C语言】库函数常见的陷阱与缺陷(一):字符串处理函数[3]--strlen
  • AlipayHK支付宝HK接入-商户收款(PHP)
  • Android Vendor Overlay机制
  • 【人工智能】从TF-IDF到BERT:Python实现文本分类的全面指南
  • POD 存储、PV、PVC
  • 使用Gradio编写大模型ollama客户端 -界面版
  • 《开源大模型食用指南》,一杯奶茶速通大模型!新增Examples最佳实践!
  • 【pytorch】pytorch入门5:最大池化层(Pooling layers )
  • SSY20241002提高组T4题解__纯数论
  • nginx配置多域名共用服务器80端口
  • ICM20948 DMP代码详解(60)
  • SpringBoot技术在墙绘艺术市场的应用
  • 在VS code 中部署C#和avalonia开发环境
  • 【Qt Quick】基础语法:变量类型
  • Vue-Lecture1-Notes
  • Redis Sorted Set 跳表的实现原理与分析
  • Redis:string类型
  • 手部姿态映射到远程操作机器人
  • python Scrapy 框架 demo
  • 【微信小程序前端开发】入门Day03 —— 页面导航、事件、生命周期、WXS 脚本及自定义组件
  • java设计模式介绍
  • Django Web开发接口定义
  • 北京数字孪生工业互联网可视化技术,赋能新型工业化智能制造工厂
  • Stable Diffusion绘画 | 来训练属于自己的模型:LoRA模型验收
  • Golang | Leetcode Golang题解之第447题回旋镖的数量
  • SpringBoot3响应式编程全套-Reactor核心