数据字典模块–JSR303参数校验

参数校验:框架

不需要重复写if判断是否为空

用户登录时,前端向后端请求接口,传递参数

Hibernate:持久层框架,类似于mybatis

ssm:spring springMVC Mybatis

ssh:Hibernate

2参数校验实现--引入依赖

在 javax.validation.constraints 包下有很多校验注解,直接使用注解定义校验规则即可:

@NotNull只能校验Integer类型

@NotBlank可以校验String和Integer类型

StudentAddDTO1是类,valid注解加在类上

min,message是用数组存储

3.自定义校验规则

@interface:自定义注解为Gender

||:或,有一个满足就返回true,没有满足的就返回false

然后就可以在需要参数校验的地方加上自己定义好的Gender注解

@Target:指定常见注解的放置位置

例:@RestController注解,只能放在类上

ctrl+鼠标左键:点击@RestController注解,进入后可以看到只能放在类上@Target做了限制

@Rentention:作用时间

!在这里插入图片描述(https://i-blog.csdnimg.cn/direct/a5c83e5753b14013b670a3538c26dc73.\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vOwe1aIc-1777713045156)(https:/![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cecc6f21854c4b91a7109dd83ec1c196.png)\]

单个属性抛出异常

测试:新建包annotation(注解)

Annotation.Gender 选择注解进行创建

@Constraint用于指定校验所在的类

在测试工具中测试输入上图中的json格式内容

如果gender输入未知,控制台报错

抛出 MethodArgumentNotValidException 异常

分组校验 :

自定义分组接口

校验注解中添加groups属性指定该校验属于哪个分组:

注意:开启分组之后,不需要分组校验的属性也需要添加上groups。否则不会生效。

controller接口参数使用@Validated注解修饰并添加属性value指定使用哪个分组的校验规则:

由于我们在统一响应做了异常参数拼接,所以这里响应的异常能能够拼接在一起

如果改成新增校验,insert,结果就不会走校验

直接新增这条数据

相关推荐
霸道流氓气质8 分钟前
AI应用成本优化完全指南:Token压缩、语义缓存与模型路由的Java生产级实战
java·人工智能·缓存
mmm.c16 分钟前
Redis 两级缓存 + Pub/Sub 广播:一次为抗高并发做的缓存改造
java
yexianglunbai16 分钟前
中间件(Middleware)详解:概念、作用与实战
java·开发语言·中间件
叶总没有会18 分钟前
OpenFeign
java·开发语言·springcloud·openfeign
小七在进步19 分钟前
类和对象(四)
java·javascript·ajax
白帽攻防录22 分钟前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
后端LV26 分钟前
三级缓存的两个失效盲区,我用 binlog 和消费组广播补上了
java·架构
写了20年代码的老程序员27 分钟前
想让 AI 改 Bug 快准狠?先给日志加个业务代码坐标
java·后端·apache log4j
SL_staff29 分钟前
JVS-Rules vs Drools:金融风控团队为何转向业务可编辑的决策平台
java·spring cloud·github
Zhou14113630 分钟前
SpringMVC_03_进阶功能
java