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

直接新增这条数据

相关推荐
Bug收容所5 分钟前
12305项目学习day5
java·spring boot·redis·mysql·spring·rocketmq
::呵呵哒::7 分钟前
java中SseEmitter
java·开发语言
lichuangcsdn7 分钟前
【Spring AI 学习(三)】实现简单的对话
java·人工智能·学习·spring·spring ai
长不胖的路人甲15 分钟前
Spring Bean 完整生命周期
java·spring·rpc
青石路24 分钟前
记一次Qoder排查mave-shade-plugin只重定向部分package导致的NoSuchMethodError问题,查的还挺快的
java·maven
墨神谕1 小时前
认识一下Unicode(统一码)
android·java·数据库
宸津-代码粉碎机1 小时前
Jar热部署进阶实战|修复原生方案OOM与类冲突问题,生产级无BUG优化方案
java·大数据·服务器·开发语言·前端·人工智能·python
小Ti客栈12 小时前
Spring Boot 集成 Springdoc-OpenAPI 与 Knife4j实现接口文档与可视化调试
java·spring boot·后端
Ai拆代码的曹操12 小时前
Spring 事务 REQUIRES_NEW 嵌套调用:连接池翻倍的秘密
java·后端·spring
动恰客流统计13 小时前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能