00:01
各位同学大家好,在前面内容中呢,咱们已经完成了基于注解方式实现a op通过注解配置的AOP的五种通知类型,那下面呢,我们基于叉方式实现A,因为过程呢,准备工作跟注解一样,所以里边的准备代码我就直接复制,咱们重点写叉L配置文件中的具体配置,那下面我们做一下准备工作。首先呢,我在里边呢,咱们建个包,这个包刚才已经创建过了,叫A,然后把包创建之后,把这个注解里边几个类,咱们就直接复制过来,因为过程都是一样的,咱把这四个类直接做复制,复制到我们的新的这个包里边来。现在完成复制,然后完成复制之后,咱们给他做一个基本准备。首先第一个大家看啊,这个是一个计算机的接口,就是加减乘除的方法,然后之后呢,有一个实现类里边有它具体的加减乘除方法,下面有一个切面类,这一切分类里边呢,咱们现在可以把这注解去掉了,就保留一个创建对象的注解。
01:16
然后之后我们看里边啊,有很多的方法。这些方法呢,是我们刚才演示了五种通知类型,那下面怎么做呢?咱们把方法上面的注解给它都去掉,因为一会儿我要用配置文件进行实现,那我们看几个方法啊,第一个方法作为这个前置控制的方法,我这里加个注释,然后包括里边有输出,第二个方法把它的注释就是这个注解去掉,咱们加上一个注释叫后置。通知。然后第三个它叫做返回通知,也是把这个去掉。因为一会儿都是用配置文件实现,第四个叫异常通知,这个给它去掉。
02:04
就是他。然后这里边再加上一个注释。然后之后下一个叫环绕通知,就是这个around。所以现在啊,咱们把这个基本的。环境就完成准备,跟刚才注解一样,只把里面这些相关内容都给它去掉,然后之后呢,因为咱们现在演示是基于配置文件实现,所以我下面呢,在这里边咱们就来个配置文件。那我来自我创建。在这里边建个文件,这个文件呢,我们起个名字就叫做B叉L。叉L有点重复啊,我叫BA点叉L。把这个创建,然后创建之后把里边的相关的约束,咱们从之前的B里边给它都复制过来就可以了,啊可能用到这么多,咱能给他复制一下。
03:03
然后把这个拿过来,所以现在这个最基本的准备工作就完成了,完成之后下面呢,我们具体写下它的配置。首先我们第一部分还是用注解方式,咱们把对象创建,然后a up的部分用配置文件进行实现。当然创建对象过程呢,也可以都写配置文件啊,那咱们还是用注解方式把这对象创建,为了咱们更加方便,那我写一下啊,第一部分开启组件的扫描。把这个我们来写一下,然后里边加这个注解content,加上我们那个扫描的这个路径,那这个包我从里边复制一下,咱当前是这个包a op里边的叉l a up。这是第一部分,然后第二部分呢,我们就配置A部分,就是里边的五种通知类型。
04:00
写下啊,配置A。五种通知类型,那下面我们开始来给他做一下啊,那我们看该怎么去做。首先第一部分呢,我们加上一个a op冒号config,表示a op中的具体配置都是在这里边做到,那怎么做呢?这里我先写一下步骤啊,然后咱们进行实现。首先啊,里边的第一部分,咱们先配置一下,我们那个叫切面类。各位注意啊,用注解的时候呢,咱是不是加一个注解派是不是能实现,但现在配置文件,咱需要用配置方式确定哪个类是一个切面类,那我写一下啊,加上一个叫A,看这个aspect,然后里面加个RF,指定咱让谁我们的切面类。那大家看是不是他要因为这个对象已经用注解创建了,那么它的名字首字母小写直接拿过来,这样的话指定了我们的切面类。
05:05
然后气温类完成之后,下面呢,咱做什么配置,一个叫切入点,就是我们之前提到的啊切入点吗?通过表达式来配置,要对哪个方法进行增强,所以咱们要加上一个切入点,就是写一个表达式的形式,那我写一下啊叫A,大家看这个。Point cut是不是叫切入点,然后给这个切入点起个名字,比如这个名字啊,我就叫这个cut,但是名字随便起,后面加上这个表达式。这个表达式咱们之前讲过,我这里边快速写一下这个execution加上星号,加上我们这个就是增强的这个方法所在类的这个路径,把这个包咱们复制过来。然后加上我们里边这个。再加上里边的方法,咱就来个星号啊,包括参数就是任意两个点,现在大家看啊,把这个切入点就完成了,对这个类中的方法我们进行增强,对这个路径不要写错,然后这个之后下面呢,咱就开始配置五种通知类型,然后咱们指定让哪个方法,比如这个方法作为前置,这作为后置,这作为返回等等,都是在这里边用配置进行实现。
06:30
那咱们一个一个写下这些相关的配置。首先第一个呢,我们先写一个叫前置通知啊,我先把注释写一下啊,第二个我们再写一个叫这个就是后置通知。啊,后置通知,然后之后呢,再写一个叫返回通知。返回之后,我们写一个叫这个异常通知。
07:01
包括最后还一个叫环绕通知,所以咱把这个叫五种通知类型,咱们分别写一下,那首先第一个先写一个叫前置,同大家概怎么做啊,其实很简单,你加个up冒号大家看啊,里边你看这个after是后置,After returning应该什么是回异常绕,是不是这个前置,然后在里面加上们哪个方法作为签通知,咱们是before method。这样的话我们就可以了,然后可以之后注意啊,这里边就要指定一下你用的是哪个切入点,因为咱要对这个方法,或者说对哪个方法增强,把它作为前置,那咱们用这个叫point cut定咱们的切入点,你看啊D跟它是不一样,指定切入点就是让这个前置在哪个方法上进行前置。
08:01
这是咱们配置的前置通知,然后用同样方式可以把后置返回这些依次配置一下,那咱们写个后置。A,这应该叫after。加上方法,我们是after method,这个叫后置,同样指定它的切入点。啊,就是ref,然后是point cut,这个就是后置通知,然后再写下一个叫返回通知。这返回特别注意啊,大家看这个气温类里边返回通知中这位置是不是有一个返回值,咱们可以得到目标方法的返回值,我这里写一下啊,获取目标方法的返回值,这可以得到,所以在里边要给它有个体现,那大家看怎么做啊,A up冒号。After returning加上咱的方法,你看这个,然后在里边注意啊,这个位置呢,应该是还有这么一个属性,这个属性它叫做returning,加上我们参数名字,比如咱们叫result。
09:11
大家看啊,我这个是不是叫result,就是返回值。然后后面就一样了啊,同样加上这个叫how in cut re,然后这样的话,完成这个返回通知,注意啊,这个名字跟咱们方法中参数名字保持一致,代表目标方法的返回值,这个完成完成之后,后面还有异常环绕,应该就一样了,我们快速写一下啊,下一个是异常,这个加上方法是这个啊,不要写错,然后这个里边有那个异常的部分,我们叫。Ex。指定切入点。Point cut,现在就完成了。同样,Ex跟我的这个名字保持一致,表示获取目标方法的异常信息。除此之外,最后一个就是环绕通知。
10:08
咱们把这个最终给他写完。A。啊,Around写错了啊,Around。加上方法名称。然后在里边注意我们要指定一下它那个切入点的部分point cut。所以我们写到这里大家看啊,现在我们就用配置文件方式完成了五种通知类型配置,这个咱就做到了,然后做到之后最后呢,我们把效果做个测试,然后咱们试一下啊。咱们来到这里边,首先把配置文件改成我们这个A的配置文件,然后最终做测试啊,为了区分我随便改一个值,比如说改一个四啊,改个三。
11:01
然后把方法咱给他执行一下。咱们看一下啊,最终的结果是怎么样的,就是咱们增强这个方法,然后它里边有各种类型的这个通知。然后大家看这里边有前置啊环绕,包括里边有。这个反应之后什么,最终之后包括有。返回通知,后置通知等等,包括这里边的结果也都得到了,所以以上啊,咱们就完成了配置文件实现a op的这个过程,通过XM配置文件完成了五种通知类型的配置。
我来说两句