00:00
各位同学,在刚才内容中呢,我们完成了基于我派的J注解方式进行a op的这么一个配置,咱们实现了五种通知类型的操作,然后咱们下面继续往下来看,下面咱们讲什么呢?就讲一下还是基于注解方式做up配置中两个细节问题,那什么细节我们先说第一个问题,就是咱们可以对这个。公共的这个切入点。进行这么一个抽取,这是第一个记忆问题,那这问题什么意思?给各位来解释一下,咱们看一下我们刚才的例子中,大家会发现在这里边,因为咱们是有五种通知类型,五种通知类型他们用的注解肯定不一样,但是大家发现在每个里边的后面部分。是不是都一样的,这一部分写的是不是一个叫切入点表达式,就是指定咱们对哪个类中的哪个方法做增强,大家发现这些写的是不是都一样了,所以现在因为这部分都相同,咱就可以把这个相同的切入点做一个提取,具体说啊,应该说相同的切入点进行抽取,那怎么抽取,给大家说一下,这就叫做。
01:20
重用切入点的定义。那怎么做,给各位演示一下啊,就是现在我们要做这个操作,把这个相同的。切入点进行这么一个。抽取,那做法就是首先第一部分咱在里边可以定义一个方法,方法名字随便起,比如我叫这个point,这个DEMO啊,我随便起个名字,然后写完之后在方法上边咱们加上一个叫切入点的注解,这注解名字很好记,叫point cut,大家看。Point是不是有点的意思,Cut是不是有切的意思,这叫切入点注解,然后在里边写什么,有一个value属性,咱们就把这个切入点表达式直接写到这里边来,这就表示把你这个切点做了一个抽取,咱们可以这么来做,就相于我们写招务类中,咱们把公共方法写一个工具类中,然后写完之后咱在其他的里边就可以直接用一下我这个公共的切入点,那怎么用给各位写一下啊,咱在里边就可以不写这部分怎么做,因为我这个注解在这个方法上,咱就直接通过这个方法把方法在里边做调用,然后方法上边与你定义的这个切入点的这个表达式,所以它会用到表达式,把这做到这个就是叫做抽取相同的切入点,我们就是这么来做。
02:51
我把这个给各位分过来,咱可以把相同切入点用这个注解叫part cut做个抽取,然后你在用的时候直接在里边加上你的方法名称就可以了,这个啊咱就完成了,然后完成之后咱可以做一个测试,因为我刚才是把那个before里边引用了我们这个切入点的方法,然后咱们看效果啊,打开里边。
03:17
B before是输出了证明这个可以生效,然后其他里边都可以这么做,而这么做的好处显而易见,假如现在我想改一下表达式,用这种方式咱只需要改了一个地方是不可以的,其他地方不需要改啊,与你相于把方法做了一个抽取,所以这是我们说的第一个记忆问题,把你的相同切入点做一个抽取,各位把这过程给他知道啊,这是我们说完了,然后说完之后再说下一个内容,下一个内容咱说什么呢?比如现在啊,我对一个方法有多个增强类,什么意思呢?假如我这个user这个类里边A的方法,咱刚才用user proceed对它是增强,比如现在我还有另外一个类也对这个方法做增强,而两个类都对一个方法进行增强,咱可以设置一下他们的优先级,这是第二个细节。
04:12
那我写一下。就是现在如果说我们有多个增强类。然后对我们的同一个方法进行增强,咱们可以设置一下你这个增强类的一个优先级,就是谁先执行谁后执行这个啊是我们说的第二个细节,那怎么做给各位来说一下啊,就是现在做法咱直接通过效果演示。比如现在啊,我在里边啊,再写个类。这个类我给它起个名字,比如说叫这个啊,咱就叫person。Per。然后在person process里边,比如现在我也是写一个方法啊,咱也写个方法,然后这个方法我也教这个。
05:02
Before啊,咱也换成一个before。然后大家看啊,现在在before里边,我也想对这个user类中的A的方法做个增强,然后现在再看它什么特点啊,比如里边我就要给它改个名字,我叫person这个。Before。这个啊,是我们写的这么一个类,所以大家发现这一类写完之后,按照咱刚才方式,这个类的对象肯定要创建,然后类上边加一个叫呃,派生成一个代理对象,所以这个咱就做到了,然后做到之后大家发现啊,目前在里边咱user pro对A的方法做增强,而person pro对列方法也做增强,但我现在想实现他们一个执行的先后顺序。那这个怎么做呢?给各位写一下啊,咱的做法就是你可以在这个增强类的上面添加一个注解,这注解叫什么,它叫OO里边呢,你加上一个值。
06:08
就是注意这个值啊,是一个数字类型的值,然后里边一个原则就是这个值越小优先级越高啊,就是数字类型的值越小,那它的优先级就越高。它的值从零开始,就是01234,越小边就越高,那咱们来试一下啊,比如现在我在这个person person里边呢,咱加这个注解叫O,然后里边我写个值,就来个一啊,这是一个值,然后我现在在user里边也加这注解,然后这个值我写个三。显而易见,1:3是不是要小,如果正确效果一的这个要先执行,三要后执行,那咱们看什么效果啊,咱们来测试一下,看一下目前的效果。
07:00
咱看直线知情。然后大家看啊,在里边的过程中,咱清楚看到person before是不是先执行了,然后你这个before后执行,就证明咱这个person pro是不是先执行了,所以这就是设置你多个增强类的优先级,咱在类上边加上一个O的这个不解,设置你的值,这个值越小优先级就越高。所以现在把这个我们就给它完成了啊,这是我们说的关于这个注解方式进行我拍的GA op操作这过程,所以通过这个过程大家掌握这以过程步骤怎么做,包括你学会用注解方式配置五种通知类型,以及咱们说的两个细节问题,一个是公共切入点的抽取,还有一个是多个增强类怎么设置它的优先级。这个啊,我们就完成了,所以咱们完成了我PAJ注解方式a op的这个操作。
我来说两句