00:00
下面我们继续来学习spring框架,刚才呢,我们讲到了基于注解方式,我派J实现a up的这个配置,那下面我们基于配置文件pad j实现A操作,但我强调在实际中呢,一般来讲我们都是用注解方式做到,因为这种方式刚才咱们感受到了,它会特别的方便。在实际中一般很少用配置文件,但是配置文件方式给各位也做个演示,大家把配置文件方式做个了解就可以了,重点掌握注解方式,因为在实际中咱一般用到的大部分都是用注解做到。所以咱下面配置文件我来演示一下,那我们看怎么来做啊,首先第一部分呢,咱还是做个准备工作,那我现在就是创建这么两个类。一个增强类。还有一个被增强类,然后在里边创建它的方法。
01:02
这是我们的第一步。然后这步做到之后,咱第二部分就是在这个的配置文件中,我们创建两个类的这个对象,然后进行它的调配置,啊,就是第二部分创建对象,然后第三部分就是在这个spring的配置文件中配置它那个切入点。也就把刚才的注解部分用配置文件做到,那咱们下面就来具体做一下,第一步咱先快速建两个类,我把这些先都关掉,然后在里边写一下,因为咱们现在要用配置文件,所以我现在呢,在里边我先建个包,这个包比如我叫a op叉L,因为咱们用配置文件做到,然后在这包里边我建两个类,比如第一个类我就叫这个。Book,在book里边呢,咱们创建一个方法,比如叫public,我叫这个BY啊,就是买这本书。
02:06
在拜这个方法中,咱们做个输出啊,就这个拜。这个啊,是我们写的一个增强类,就是被增强类啊book,然后下面我再写类,就要增强book中这个摆这个方法,那在里边我建个类,比如这个类我叫布口。然后在book里边咱们建个方法,然后来一个public,就叫这个before。让这个before方法作为我这里边的前置通知的方法,那在before里边我也是做过输出,我就叫这个before。这样的话,咱们把两个类就创建了,这是我们的第一部分,然后一会儿咱要实现在BY方法之前,把这个比before方法做为执行,但是刚才我提到这个方法名字可以随便起,不用叫before啊,咱这么写是为了让各位看的更加清楚。
03:01
然后这个第一步完成了,我就不在里边复制了,因为比较简单,然后第二步咱在配置文件中把两对象先串出来,那这配置文件为了区分,我在里边再建一个,我叫这个B2叉L,包括在里边其他部分不需要变,就是组件扫描这些,就是这个暂时应该不需要啊,因为它里边我们用的配置文件,那我现在把这个我们先给它去掉了啊,这些应该暂时不需要了,然后在里边怎么做,第一部分咱就把这个对象。做个创业。就是创建两个类的。对象,那对象创建用配置文件,咱应该都知道,我们加一个BD。然后再加个class,第一个就是咱们那个book后面加上它那个包的路径任5A啊,就是这个叫a up叉L,点上这个不可。
04:00
这是第一个对象,然后下面还有第二个对象,就是咱那个增强类,我叫book。Per里边加上这个叫点book per,所以咱们现在把两个对象在配置文件中我们就串出来了,就是咱们之前讲的这个基本做法,这各位能给他快速做到,然后做到之后重点是第三步,咱需要在配置文件中配置它那个切入点,这过程就是哪个类中哪个方法对哪个类中哪个方法做增强,咱需要做这部配置,就配置它那个a op的部分。那咱们来做一下啊,就是下面咱开始配置a op中内个增强。小D位置啊,A up增强,那怎么做?写下第一部分,咱先加上一个标签,叫a up conig,大家看config是配置,咱们把配置写到这里边,然后在配置中写什么?首先我们写第一个就是配置一下它,这个叫切入点。
05:06
这切入点这个术语咱解释过,就是你要对哪个类中哪个方法实际做增强,而切入点咱可以用这个切入点表达式把这做到,那怎么写,我们加一个叫a op pocu。大家看是不是切入点,然后在里边呢,这个位置我们写上有两个属性,一个是ID,一个是你的表达式,ID就给切入点起个名字,名字随便起,比如说叫P,然后表达式就写上咱之前写过那个切入点表达式,这表达式我重新写一下,第二个execution。里边星号就所有的那个用算修饰符,然后加一个com.AP硅谷点上SPRING5点上这个a op。叉L,然后点上咱们那个类叫book book中的方法叫BY方法,然后里边加上你的参数列表,这就写了一个切入点表达式,对book里边的BY方法做增强,这个做到了,然后这个做到之后,咱下面句型配置,下面配置什么呢?我写一下啊,咱需要配置一个东西。
06:19
这东西叫做切面。我说各位是否记得啊,咱在之前讲过这个术语,切面,什么叫切面呢?它就表示把你这个增强或者你的通知应用到你的切入点过程,因为咱们现在要把这个b before方法,在A的方法,就是在我的BY方法之前,是不是执行这过程叫配置切面,那咱看怎么做啊,给大家写一下,你加个叫a op和PE。这个。然后在里边呢,我们加上一个叫ref ref指的是什么?就是你那个增强类,因为咱要做增强嘛,你把增强类写过来,咱增强类角book per,然后写完之后在里面就指定哪个增强对哪个方法进行这个操作。
07:11
我写一下啊,这里面就配置你的。增强作用。在具体的方法上。咱说那个界面那怎么做呢,里边加一个叫这个。A。然后a up后面加上你的具体通知,因为咱们要做前置通知,如果你别的通知,比如这个后置异常环绕里边全有,咱现在做这个前置用before,其他都一样,然后在里边注意这个写法啊,在里边两个属性,一个叫method,一个叫point ref method中写什么呢?就是你现在增强的那个方法,因为咱增强方法是不是叫before,所有把before方法拿过来,然后比勾方法要作用在哪个切入点上,咱切入点是这部分别管,起个名字叫P,所以把P。
08:05
写过来,它就表示把before方法作用到你这个BY方法上面,并且他做的叫前置通知,这叫up before,包括咱们看到里边还有其他同志配置方式跟他一样,所以咱们现在把这个就完成了,里边主要就是这段配置。这个啊,咱们写出来了,然后我把它复制到我们的课件中来。咱们把这过程再看一遍,然后最终我们做一个测试。然后咱们啊快速看一下哈,首先写两类,一个增强,一个被增强,然后在里边创建对象,创建对象之后先定义切入点,就是你对哪个类哪个方向做增强,然后定义你要增强在哪个方法上,就配置咱们的切面,我现在是把这个类中的before方法作用在这个BY方法,并且在拜之前执行,所以里边就是这么一个体现,这个P是它的名字,这里边的before。
09:01
是你这个增强这个方法,然后这是你的增强类,这样的话我们就写完了啊,就这么一个配置,然后洗完之后,最后咱们把它做一个测试,看一下最终的结果。那咱们测试一下啊。我把这个再重新写一个叉L,然后这配置文件我们叫BIN2,在里边得到我们的对象。就这个book啊,然后里边我们叫book。点class,最终它返回的是一个book这么一个对象,然后咱们调用book里边这个BY方法看一下效果,就看一下我里边那个before方法能不能在book之前执行,如果能执行,证明咱配置前置通知就正常,就正常生效了啊。然后各位看。是不是可以做到BY之前before是不是执行了,所以证明咱这配置就成功了,所以这样的话,咱就基于配置文件方式pad j实现了a op的这个操作,包括我这里是配置一个前置,各位可以按照这过程把后面的比如环绕异常等等,这个配置方式跟它应该一模一样。
10:19
这个啊,我们就写完了,关于这个基于我pad j用注解方式,还有用配置文件方式,咱把这a op的操作就最终完成了,各位重点掌握是注解方式这个做法。这个啊,就是a op部分咱就都说完了,然后都说完之后呢,最后啊,有一个小细节问题给大家简单说一下啊,这是什么细节呢?因为咱们在刚才说过注解方式,包括注解方式,我在之前讲到过一种叫完全注解开发。不知各位是否记得什么叫完全注解,就是你不需要配置文件都用注解做到,但是做的过程中咱需要写个什么,是不是要配置内容,那把这个给各位说一下,就是现在呢,我用这个注解的第咱也可以做这个就是完全的注解方式,不需要写配置文件。
11:15
那怎么做,给各位简单演示一下啊,首先第一个配置内加个什么,是不是这个config。Vision配置类,然后在配置类上边咱就要加那个叫组件的扫描,或者说开启注解扫描comment磁看加一个base package是一个数组里边加一个come。点A,硅谷是不是加上这个,然后加上之后咱们看啊,刚才注解里边是不是有这句话叫开启派的J,这个就是生成代理对象,而这部分咱用注解里边可以替代什么?注解它这个名字叫an able pet auto,把这加上可以了,因为这里边有个值,这个值。
12:02
要proceed这个target class这个值呢,默认你不写就是处啊,就是当然我可以写出来是处,但是如果你不写它,它默认是false,所以咱需要把这个加上,这就可以替代我们这个配置文件中的这个东西,然后这个开启组件扫描,用这个com看可以做到,这是完全用注解做到的,咱可以不用配置文件,在里边写个配置类加conguation加组件扫描加生成PAJ这个代理对象。这个位给他就是了解一下啊,咱们把它也做个说明,然后把这一部分也是补充到我们的笔记中来。就是咱们里边的这个。第七个。如果说咱们完全使用注解开发。那这个时候咱就可以创建这么一个配置类。然后这里边不需要创建叉mlo配置文件,在配置类中就写上刚才我写的这些,包括compation,包括这个unable auto process这个注解,用它可以完全做到这个啊,是我们提的一个小细节问题,所以现在咱就把这个SPRING5里边的a op操作,咱们就最终也是完了,在a op中的我最终简单总结一下啊,要各位重点掌握几个内容,第一个。
13:29
A op的概念。就是a op是不通过改名代码在主源功能中加有新的功能,然后咱们举个例子,这你要知道它的底层原理,用到动态代理有接口和没接口情况,这是什么样的,要各位要掌握。另外就是里边的几个术语。包括连接点,切入点,通知,还有这个切面,最后就是派J的两种方式,注解和配置文件,重点各位掌握注解方式,把这个怎么做到,所以咱们a op的部分就完整的也是完成了。
我来说两句