00:00
下面给大家演示基于注解方式实验LP中的最后的两个细节问题,第一个问题重用切入点表达式,第二个叫切面的优先级,那首先我们看第一个内容,第一个内容什么意思呢?大家看我刚才的例子中各位发现啊,我这里写的时候,你发现我这个before上边还有after上边,包括你看里边我这个切表达式写的是不是都是一样的呀?包括你看每个里边表达式写的是不是都是。那这表达式其实咱可以怎么做,我可以把它定义一次,其他地方直接引用就可以了,而不需要重复写入多次,这就叫做重用切入点表达式,那这个该怎么去做?下面给大家演示一下这个过程,我在里面写一下。首先啊,我们的做法就是我先写个注释,就是重用。切入点表达式,咱的做法就是呢,首先我先建一个方法,这个方法比如我起个名字,名字随便起啊,我就叫这个,这是我写的一个方法。
01:14
然后方法写完之后,在方法上呢,咱们加上一个注解,就叫point cut,然后在里边加你那个切入点表达式,那我现在比如说啊,我把表达式我就给它拿过来,那就是我们的,呃,就是这个表达式啊,我把它直接咱们就复制过来。然后拿到我的这位来。现在在里边就加上了,加上之后咱后面如果用的话,那我直接怎么做,直接我们调这个方法可以了,用方法上就成表达式,而不需要每次再写一个这个表达式,这样的话达到了一个重用的目的,那怎么进行使用,咱们来用一下啊,这是我的方法名字叫point。
02:01
这个名字,那我现在用法就是强调,如果说啊,你在同一个切面中使用,咱目前就是同一个切面,那用法很简单,咱们找一个啊,我就找这个后置通知,然后怎么做,把里边的这个部分给它就去掉,就这个after里边这部分给去掉。然后去掉之后呢,换成咱们那个方法的名称就可以了,就这么来用,这就叫重用,确成表达式,这是在同一个切面,如果说啊,你在不同的切面需要加上你这个包的路径,比如我现在里边有这个包,加上这个类,再加上路径啊,咱也写一下啊,就是也可以这么来写。比如说这么写完全可以,因为咱是同一个面,如果你不是同一个,前面就要加上你的路径。这是我们的包的名称。然后加上你的类的名字,这个应该叫它。
03:02
把这个加上。加上之后,最后再加上咱们这个方法,通过它可以使用啊,这看你怎么去用了,因为咱们目前是同一个切面中,我这么做就可以了,这就是重用切入点表达式,那我现在啊,加到了后置通知上,咱把它做个测试,试一下效果是怎么样的。我们来测试一下。然后各位看里边啊,这句话后置通知是不是执行了,证明在那个切肉菌表达式在里边就真正用到了啊,这是我们说的第一个细节,各位把这个记住啊,应该很简单,就是让它重用,你不需要写多次重复的表达式。然后里边还有第二个细节叫切面的优先级,因为大家注意啊,我们相同的方法可能同时存在于多个切面,就是多个切面对它都做增强,那这个时候有一个优先级的问题,怎么样优先级,看这张图里边啊,咱这么约定就是你外边优先级肯定是高于里边,比如说你看我现在外边是不是切面B,里面是不是切面A,切面B里边肯定要高于A,这是里边的一个原则。
04:18
而咱们使用一个注解叫O能控制你的切面优先级,O里边值越小,优先级越高,它的值越大,优先级就越低,这是咱们提到的这个特点,把这个记住,所以以上啊,到这里基于注解实现a op的部分我们就完成了,大家重点掌握如何配置五种通知类型。
我来说两句