Bean校验,Hibernate Validator案例训练 用户信息验证 验证的基本用法 自定义验证

上节课学习了Hibernate Validator的验证
下面我们来到官网继续学习https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/
看下面这个需求 我们今天使用Hibernate的验证器实现下

image.png

首先先列举一些Hibernate Validator的常用的注解(网上到处可见)
image.png

首先在UserEntity中加入用户密码字段 并打入注解
image.png

然后再MySpring中掉用
image.png

运行结果
image.png

因为我们传入的密码为123不符合6-20位 提示出信息
接下来我们在加入一个用户兴趣爱好字段 并验证
image.png

接下来来到UserEntity加入兴趣爱好字段 并添加验证注解
image.png

来到MySpring 设置下兴趣爱好值
image.png

运行结果
image.png

因为我们没有填兴趣爱好 所以提示出相应的信息
接下来修改下兴趣爱好数组值
image.png

运行结果
image.png

可以发现验证是通过了 但是如果想对兴趣爱好值进行进一步控制怎么办?
接下来进一步修改下需求 想要设置兴趣爱好最少为1个最多为10个 并且兴趣爱好名称为至少2个字最多10个字
下面用代码演示下
在UserEntity中加入
image.png

在字段的前面加入字符长度限制注解
在MySpring中调用
image.png

运行结果
image.png

由于传入字符长度为1 所以提示出验证信息
验证更多的用法参考上面放出的官方地址
接下来学习下自定义的验证 有的时候老外带的验证不能符合我们的验证规则,需要自己自定义验证规则
image.png

下面我们模拟个需求
比如用户名在注册的时候不能有违禁字符
默认不予许字符串中拥有“bhcbhc”这个词汇
如果设置了违禁词汇,用逗号分离
下面我们用代码演示下
之前学注解时候我们写了一个自定义的注解NameCheck 那么这个注解如何和我们的验证有关联呢?
有几个属性是必须的
第一个是message
比如说一旦出错,出现异常 需要显示什么内容
接下来看下NameCheck注解
image.png

可以看见新增的必须得三个属性
上面创建了注解 那么如何对注解进行解析呢
接下来在MyAnnos包下面创建一个NameCheckClass文件
目录如下
image.png

那么如何把注解和我们创建的类文件关联呢?
需要在我们的自定义注解里面打入@Constraint注解 可以ctrl+鼠标左键进入源码 看见validatedBy方法
表示由哪个类进行验证
自定义NameCheck注解中加入如下
image.png

可以发现有波浪线标红了 编译器告诉我们这个类文件需要继承ConstraintValidator接口
所以我们来到NameCheckClass文件 继承该接口 alt+enter 实现其中的两个方法 NameCheckClass中波浪线消失了
image.png

NameCheckClass文件变为如下
image.png

我们在else处 需要编写判断代码
这里需要判断一下 NameCheck注解里面有个forbidden里面有个默认的值bhcbhc 如果有别的值 可以在打注解的时候编写
所以来到UserEntity
在userName字段上 打入自定义注解
image.png

那么这个自定义字段值如何获取呢?
在NameCheckClass文件中初始化方法里的constraintAnnotation对象可以获取到
image.png

因此我们定义一个变量
image.png

下面进行else部分逻辑判断
NameCheckClass代码如下
image.png

接下来就可以运行MySpring了
MySpring代码如下
image.png

运行结果
image.png

出现了有违禁词汇 因为我们的username设置为了bhcbhc
接下来我们把UserEntity中自定义注解加上message信息 修改下默认的message
image.png

运行MySpring
image.png

接下来注释掉username值在MySpring中
image.png

在UserEntity中注释掉username的@NoTNull注解
image.png

运行结果
image.png

可以发现如果没有设置username 我们默认是认为合法的
因为我们CheckUserName没有对null值进行处理 因为有@Notnull注解进行判断
所以一般我们要加上@NotNull注解 省去自己判断
再次在UserEntity中的username处加入@NotNull注解
image.png

运行MySpring
image.png

因为我们没有对username进行设置值
以上就是最简单的自定义验证

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • Hibernate是一个开源,轻量级的ORM(对象关系映射)工具。Hibernate框架简化了java应用程序与数...
    易百教程阅读 1,140评论 2 4
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,778评论 6 342
  • 现代劳动合同在平等自由基础上,只出卖单位时间内的生命使用权,这是一大进步。 #辅助#
    仇志飞阅读 86评论 0 0
  • 文/小七 图片来源网络 前两天公司一个同事跟我说:小七,我想辞职。我愣了一下问她怎么突然想要辞职了呢?她告诉我,她...
    岐大阅读 405评论 0 0