问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SpringBoot自定义校验注解

发布网友 发布时间:2022-12-05 10:11

我来回答

1个回答

热心网友 时间:2023-12-22 03:00

系统执行业务逻辑之前,会对输入数据进行校验,检测数据是否有效合法的。所以我们可能会写大量的 if else 等判断逻辑,特别是在不同方法出现相同的数据时,校验的逻辑代码会反复出现,导致代码冗余,阅读性和可维护性极差。

Hibernate框架中有一个组件 hibernate-validator 专门用于数据校验,在平常的Spring项目中虽然数据层不使用Hibernate做 ORM 框架,但是 hibernate-validator 也经常被集成来做数据校验。

下面我们写一个用于 URL 校验的注解,实现一个简单的网站信息管理的 URL 校验,做校验的方式我们也使用现成的apache工具包中提供的校验工具。

校验注解

校验类

校验类需要实现 ConstraintValidator 接口,第一个泛型为注解,第二个为校验的数据类型。

实现这个接口必须要重写 isValid() 方法,在其中实现主要的校验逻辑。

创建 Insert 、 Update 分组别用于区分和开启校验

用于分组的类需要继承 javax.validation.groups.Default 接口

创建一个 WebSite 类,对其中 url 、 alternateUrl 进行校验,这个字段分别属于 Insert 分组、 Update 分组的时候进行字段校验。

具体校验方式如下,在insert接口对 Insert 分组进行校验,也就是校验 url 属性,在updateAlternate接口对 Update 分组进行校验,也就是对 alternateUrl 字段进行校验。

若校验不通过,代码会抛出 MethodArgumentNotValidException 异常,我们实现一个统一异常处理类来处理这个异常报错,并返回校验提示信息。

使用http工具调用接口,返回相关信息

首先使用一个错误的 url 参数调用 insert 接口,校验不通过,但是调用 updateAlternate 接口可以通过。

调用 insert 接口的返回及日志打印如下
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
css布局绝对定位和相对定位疑惑? 湖北对口单招有哪些大学 湖北单招最好考的学校有哪些 玻璃隔断吗 《八佰》中的南岸刀子,《药神》中的沉默黄毛 有哪些适合新手养的蛇品种推荐? 新手喂养什么宠物蛇比较好? 色叔叔茜色是什么色 仓鼠上窜下跳一直不停,是什么原因? 禽医静心谈鸭黄病毒的主要症状有哪些?鸭子得了黄病毒怎么治疗? hibernate validator 自定义注解详解 连云港干于有电瓶修复的吗?地址在哪? 我的世界斯巴达武器钢板盾怎么弄 md世嘉的rom在哪里下 抖音收藏的音乐怎么删除掉 全职高手手游一叶知秋技能厉害吗 一叶知秋技 出口退税最新政策的进项税额是什么 2022甘肃省考公务员报录不足3:1怎么办 河北医科大学生物医药经营部怎么样? Korn的《Hey Daddy》 歌词 求助,谁有证券投资学的资料 ...和available balance 是什么意思?有什么区别? 谢谢~ amount和balance的区别 10月30是什么节气 资本公积在企业注销时如何做账务处理 餐饮安全责任书 食堂安全责任书 餐饮安全管理责任书 厨房人员安全责任书 关于信任的朋友圈文案 关于做生意信任的说说 【SpringBoot】 在SpringBoot中使用Hibernate Validate 十大耐玩单机手游 深圳高级中学在哪里 深圳高级中学东校区地址 深圳高级中学有几个校区 深圳市高级中学创新高中在哪里 深圳市高级中学文博高中地址 10月的祝福语 coldplaydaddy创作背景 微胖女生穿搭教程 6件让你看起来很胖的衣服千万不要穿 微胖男生穿衣搭配图片 脸大、微胖、个子还矮,如何驾驭法式风?看完这位博主就知道了 Super Daddy的介绍 在学校参加招聘会好还是先培训再自己找工作好? 吐能组什么词 汉字吐能组什么词 家里可以做的小实验 家里可以做的小实验有哪些 梦见悬崖峭壁是什么意思 为什么梦见悬崖峭壁 大骨汤面的做法步骤图,大骨汤面怎么做好吃 520低调官宣自己有个可爱的女朋友的句子 适合五月份发的文案(精选46句)