数据字典模块–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,结果就不会走校验

直接新增这条数据

相关推荐
程序员黑豆16 小时前
Java包装类:基本类型与对象的桥梁
java·前端·ai编程
mldong20 小时前
"applicant" 契约:退回发起人的闭环设计
java·架构
月华路20 小时前
G1 垃圾回收:脏卡队列、记忆集与并发精化线程机制
java·开发语言
gugucoding21 小时前
47. 【Java】Java内存模型(JMM)与可见性
java·开发语言
zww894911121 小时前
校园跑腿系统开发实战指南:从需求分析到上线部署全流程解析
java
Fluxart.ai1 天前
电商商品图审核怎么自动化?规则引擎、人工复核与发布门禁
java·前端·自动化
名字还没想好☜1 天前
Java 线上内存泄漏排查实战:jmap 导堆、MAT 找 GC Roots 与四类常见泄漏
java·开发语言·jvm·内存泄漏
IT爱学堂1 天前
尚硅谷 - 2025年3月Java+AI大模型应用开发
java·开发语言·人工智能
小贤plus1 天前
SpringBoot 三大核心注解精讲:@ControllerAdvice、@RestControllerAdvice、@Validated 分组校验(实战)
java
吠品1 天前
Java byte数组与String互转:编码细节与踩坑记录
java·linux·服务器