00:00
各位同学大家好,刚才呢,我们演示了第一种方式通过valid接口实现校验,那下面呢,我们看第二种方式基于b valid,也就是解方式进行实现,那这种方式实现的时候呢,它需要用到valid factor,还有valid这个接口,而这里边有个实现类,这实现类实现上面接口,所咱直接配置local b就可以了,那下面呢,把这个怎么实现的步骤给各位做个分析,然后咱们进行具体实现。我在这里边写一下啊,这是咱们刚才的第一种方式,下面咱写第二种方式,这种方式怎么来做,写这个位置,首先我们的第一步操作,咱们在里边呢,可以创建一个配置类。然后在类中呢,配置刚才咱说这对象local va fair b就是我们的第一步操作。
01:00
通过它进行实现。然后这个之后我们里边的第二步给大家继续写下,第二步操作呢,我们创建一个实体类,然后定义属性,生成它的get和set方法,然后我们在属性上面使用注解来设置它的校验规则,比如说你这里边不能为空,比如说你的年龄在零到120岁,这些咱们用注解经实现,这是咱的第二步操作,然后什么注解,一会儿咱自我介绍,先把步骤各位先知道。然后这个之后,我们里边的第三步操作写到这里啊,第三步怎么做呢?咱们创建一个叫校验器,然后这个校验器呢,在里边我们有两种校验器带着各位来看一下啊,第一个校验器大家看这里。它是里面校验器,还有一个是原生的校验器,两种方式给各位都进行演示,所以第三步我们就创建校验器。
02:08
然后这个之后我们的第四步。讲这里啊,第四步咱们就完成最终的测试,所以说以上啊,就是咱们写了这么一个基本的步骤分析,下面呢,我们就按照这个步骤,我们开始进行实践。那下面啊,咱来写一下啊,首先第一部分呢,我在这里边,我先建个包,我写到这里,这个包给它起个名字就方式,然里我们个类这类,我个名字这个valid。Con。在类上边我们加上一个注解configuration,然后同样啊加上它那个包的扫描规则,把这个。
03:03
包的路径,咱们拿过来扫这个里边这个监管内容,然后之后呢,在里边咱们来创建这个对象,我加上一个B,然后加上public,它叫local validation b啊,咱们给它起个名字,这个名字呢,我就叫valid。当然,你可以叫get什么什么B,我就叫valid了。然后在里边直接re new上这个对象,所以现在啊,大家看我们的第一步完成了,就是一个配置内里边配置这个对象,如果说你用配置文件,那就是BD class啊,加上这个对象,这个完成完成之后继续来写,我们到第二步操作呢,咱们建个实体类,为了跟之前区分,这个我就叫user。然后user里边呢,我也加上属性,第一个属性我们加个。
04:00
然后第二个我还是加一个了啊,它的get和方法咱们给生下。然后生成之后,在这个属性上边,我们用注解加上它的规则,那什么注解呢?给大家来说一下啊,大家看我课件里边,就是我的这个位置列出了一些常用的注解,那咱们来看一下啊,有哪些常用的注解?首先第一个not钠就是不能为纳啊,就是值不能为纳。第二个not empty表示用在字符串中,字符串不能为空,第三个not blank也是不能为空,但是它表示是你去空格之后不能为空,包括这两个是数字must幂最小最大值,这个pattern就是正则表达式,Size表示范围email用于邮箱的校验。就是这是我们比较常见的这么一些校验的这种注解,那咱们演示几个最基本的,比如第一个我们的名称啊,那咱们写一个not,那就是不能为纳。
05:07
然后第二个呢,我们再写一个。这个呢,咱们写一个年龄,比如跟刚才一样啊,咱们加上一个最小值就是零,就是要大于零,再来一个最大值,再来一个150,就是要小于150,所以通过它设置我们的调研规则,这个不能等于呢,这个最小值最大值,这个完成完成之后,第三部分呢,我们写上一个校验器。我在里边写一下啊,刚才我提到我们有两种救原器,一个是死人里边的,一个是原生的,两个咱们都来写一下,那我这里实现啊,然后为了明确啊,我这里比如说写第一个,我就叫这个买validation。这是第一个校验器啊,咱们做个创建,然后这里边我在创建第二个叫VALIDATION2,咱们写两个校验器,那我现在啊先来写第一个,咱们把它做实线。
06:08
那这个怎么做呢?其实很简单啊,我们在里边呢,首先这个类的咱们肯定进行建,我就加上一个service可以啊,然后里注入我们这个换个注入。凹凸曼。加上一个叫valid,注意啊,大家看这里边啊,给各位。这里来看啊,你看啊,第一个里边的,第二个是这个原生的,那这里边呢,我们就先用一个原生的了,这个啊vali把它进来,注意咱们导的是这个包里面内容为什么叫原生的呢?大家看这个依赖虫啊,看这里。也就是他。因为它是对have net valid做了封装,咱用这个原生的这个进行实现,这是我们的注入,注入之后下面呢,我们写上一个校验的方法,就反一个布尔类型,我们叫这个就是vali吧啊。
07:08
呃,这个名字随便起,我就叫valid啊。里边呢,你那个就传对象啊,是右侧对象,然后最我们做校验用,就这里边的这个方法,呃,当然叫呢,我们很容易误会啊,咱为了区分一下,给他来一个百。U色啊,区分一下啊。这是我们那个第一个第一种来一个,然后用里边的有一个方法,咱们来给写下啊,这个方法就叫date。就是这个方法。方法中写什么呢?咱们就写上它的对象,最终它返回的注意啊,是一个什么,你看是个什么,是不是一个set记号啊,它反而是一个set集合,然后咱们通过它,我们可以直接做一个return。
08:03
呃,就是valid date里边这个叫is amity,就表示是否有那个,就是校验的什么这个信息等等啊,就是咱输出看到效果,这是我们写的这么一个,第一个交换器,就是用它原生的valid进行实现这个完成,完成之后我们再写第二个啊,就这个my validation2在上面呢,加上一个注解service。然后加上之后在里边我们继续来写下。然后同样啊,还是注入这个validation,注意一下啊。但是注入我们用里边这个validation,这个注入错啊,跟刚才不一样,下面写方法public,呃,布尔类型,刚才我是叫这个名字,咱给他改个名字啊,这个咱改个叫兔。这个。
09:02
然后在方法里边同样传入user对象,最后我们进行实现,这个实现呢,它里我们首先需要六个对象,然后进行实现,比刚才稍微麻烦那么一点点啊,叫这个band exception。等于new上一个半exception,然后在里边呢,加入user对象,再加入里边那个相关那个值,答案是名称啊,有这么一个值。把这个咱们拿过来,然后拿过来之后在里边我们用这个valid里边的方法,还是叫vali date传入你的这个,诶写这个啊,Vali里这个方法我们写一下啊这个。它叫validate,第一个传入user。呃,没写出来啊,重新写一下啊。点上valid date就是它啊,刚才选错了啊,第一个传user,第二个传这个band exception,然后最终我们做一个旅。
10:12
Exception点上has arrows是否有什么错误信息,这个啊,咱们完成这个校验器。所以现在啊,这个过程就完成了,最终呢,我们来做一个测试,那咱们写一个测试类,最终测试一下我这样test user,然后里边呢,因为咱们有两个校验,所以咱们分别经测试,我写两个方法,咱们加上T,就是单元测试啊,咱们来试一下第一个我就叫这个test validation y。这是第一个方法,然后第二个我们叫to,就是用两个校验器分别进行测试啊,但是效果肯定都是校验,这个过程是咱们分别都试一下,那我们先是第一个啊,第一个怎么做呢?就是咱们看到我现在是不是有这个配置类,所以咱们第一步肯定是加载配置类,得到你这个my validation1,然后调方法进行校验,然后第二个得到二进行校验啊,过程都类似,咱们写一下啊。
11:16
Liation contest等于上一个叫noation bigliation contest,加上这个validation big.class就是加载咱的配置,创建容器,然后contextt.get b。加上咱们这个类型,我们先取第一个啊一点,然后在里边我们把这个得到啊,咱就叫这个。呃,就叫validation。一啊,就是它了啊。然后得到之后,我们下面呢,可以调用里边的这个方法,咱叫Y,然后传入你的user对象,最终进行校验,返回是布尔类型,就是咱们那个信息。
12:07
咱把它可以做一个最终的输出。首先啊给输出一下,这里边呢,需要用到一个对象,咱把对象给它就一下就可以了,就是我一个。所以现在啊,这就是一个最基本的一个校验,那咱们试一下啊,看一下目前什么效果,我们来做个测试。大家看里边会怎么样啊?首先大家看啊,这里边输出什么,是不是叫false,为什么输出false呢?我们注意啊,咱看这个方法里面,看这位置,它就表示这个值,它说啊意思那就表示目前这个校验它里边这个特点。那比如说咱们比较来看啊,我在里边,比如现在我设这个值,就是它的name,咱们写一个Lucy name值目前是不是有值,因为刚才我这里写一个not now,它应该是为空,是false,那我现在有一个值,咱们在执行,大家看里边,你看现在输出。
13:11
是不是就是true啊,证明它就这一边就校验过去了,就校验通过了,然后这个时候呢,比如说我们再试一个啊,咱们写一个user.set我们加上一个负一,加上负一这个值,现在我把它执行,因为咱的值肯定是最小值是零,而不可能是负一,给大家看里边是不是就false,那比如说我再写一个啊,咱再试一个,我来一个20是不是正确的,现在我再执行。咱看它的结果啊,因为咱是通过出和false做一个输出,你看现在是不是就出就校验通过了,这是我们做的这么一个过程。所以以上啊是演示第一个校验器,那下面呢,我们在演示第二个校验器,过程跟它类似,我就把这部分复制,然后下面的咱来写一下啊,首先我们加的是my validation2。
14:03
加这个。然后咱们也是new这个对象。啊,你有这个对象。然后在里边呢,我们调用VALIDATION2中的这个方法传入user对象,最终有它的返回结果,咱就叫这个,呃,还是叫那个,刚才我们看叫什么啊,刚才我们那个测试方法。呃,在这里就在这里啊,它叫message啊,那我也叫还是叫这个名字啊。在里边给他输出一下。Message,那咱们下面啊,用这个交验器进行一个测试,它用的是死里边原生的这个键法,咱们试一下这个效果啊,目前内幕值肯定等于空,然后大家看啊这个效果,这个效果怎么做呢?你看啊,它直接抛了一个异常,它并不是戳false啊,直接抛了,抛了异常,然后异常里面是什么说你这个name值必须不能等于空,所以你看啊这个更加的明确,那比如说我们再试一个啊name值它现在不等于空,现在我们把这个再进行执行,就这个to的这个方法,咱们看现在啊,这里应该是正确的。
15:15
正确是这个值啊,你注意这个跟刚才不太一样啊,它为的是false呢,因为咱是这个特点。你看啊,这个二里边。这是不是叫有错误信息啊,目前false表示它没有错误信息,有错误信息就输出了,没有的话表示false表示你就成功了,它是这种思想,这明确啊,然后咱们再试一个啊,比如现在我加个H,我们加上一个负一。这肯定是不对的啊,咱们执行别执行错啊,是to的,这个咱看负一怎么样的。大家看啊,这里边我们是这么一个特点,就是负一。呃,应该没执行,对啊,咱再执行一下啊,看一下啊。
16:01
负一。好,各位看啊呃,这么测试呢,咱这效果不是特别明确啊,咱给它稍微改个地方啊,我们找到这个my validation2里边大家看这位置呢,叫arows,咱目前处就表示啊,其实它目前有错误信息了,但是这么看咱看的不明确,所以我把这个信息给它输出下,咱就输出里面这个叫get oo。把这个我们都给它输出一下,它是一个历次集合啊,咱们最终给它输出o is,然后这个之后呢,我们再进行测试,咱来试一下啊,因为刚才看到很不明确啊,咱们看着很容易乱什么又触又false,咱这么来看。大家看啊,这里边处表示有错误信息,然后大家看这行,这行写到啊,说在这里边呢,我们现在有一个值是负一,这个负一出错了,怎么出错呢?有一个默认的提示,说你最小值不能小于零,咱目前出错,那比如现在啊,我再加个值,咱加个130。
17:09
咱再试一下。看目前是怎么样的,我们做个测试。然后大家看啊,这里边130。130呢,咱们看啊,没有任何的输出,因为我刚才这里边我们找一下啊,U里边的最大值是不是150,它在正常范围,那咱给他改到再大一点,我改成这个200。现在咱们测试。咱们最终试一下啊,你看啊200,它最终提示我们处有错信息,然后告诉我们说这个最大不能超过150,所以咱们现在就用第二种方式,基于b validation注解方式实现了这个校验。这个我们就讲到这里。
我来说两句