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

直接新增这条数据

相关推荐
swordbob27 分钟前
ReentrantLock 与 AQS 完整学习手册
java·开发语言
m0_587383001 小时前
全民健身解决方案软件开发实战:从架构设计到落地指南
java·spring boot·spring·架构·需求分析
白山编程大哥1 小时前
Java OutputStreamWriter 详解:从字符到字节的桥梁
java·开发语言·python
一技安身2 小时前
【信创】Docker‑Compose V2 两种离线部署(独立模式、插件模式)简易教程
java·docker·eureka
七夜zippoe3 小时前
为什么 2026 年每个 Java 团队都该懂 AI Agent
java·开发语言·人工智能
时凌云.3 小时前
【2026最新】JDK 下载安装与环境配置全教程(Windows/Mac/Linux 三平台,零基础友好)
java·linux·macos
Despacito10063 小时前
Java后端性能探查工具速查表
java·开发语言
蓝桉柒73 小时前
下载idea,用idea输入一个程序
java·ide·intellij-idea
蓝桉柒74 小时前
java字面量,变量
java
典典分享指南4 小时前
一品牌多产品线的 GEO 内容矩阵:从策略到落地
java·c#·bash·symfony