00:00
好,我们前面呢,通过走原路的方式来看了一下up的这个原理,这个原理呢,虽然很多,但是呢,我们给它来做一个简单的总结,首先这个总结呢,我们来说第一步,第一步呢,我们是利用这个enable aspect接autoy注解。我们利用这个注解来开启咱们这个op的功能,这个AOPP功能是怎么开启呢?主要就是我们这个注解这个件会给容器中注册一个组件,这个组件呢叫not auto pro create,而这个组件呢,我们说它是一个后置处理器。是一个后置处理器,所以说这个后置处理器要怎么工作,哎,我们说了整个啊,我们利用这个容器的咱们这个创建流程,哎,我们发现了这个后置处理器的对象创建以及工作,首先呢,我们容器在整个创建对象的时候,哎,我们来看我们这个测试方法,我们要用这个容器对象的时候,它会调用rere,哎,刷新容器,而刷新容器呢,有一步是来注册后置处理器,在这一步会为所有后置处理器来创建对象。
01:28
它呢会来注册后置处理器,所以呢,在这一步呢,会创建我们这个notation aware的这个对象,然后呢,接下来第二步我们容器刷新呢,哎,更重要的我们在下边在这刷新它最后一步,哎,我们这儿会有倒数第二步,它是来初始化剩下的单实力比应。啊,它还有一步叫初始化剩下的单时利宾,那如果要初始化剩下的单式利宾,那我们的这些mass canc log的创建,那就都在这儿了,所以说呢,我们在这呢,就是创建啊,创建咱们业务逻辑组件和切面组件,就是呢,这两个组件呢,都会创建出来,而这个创建的时候呢,最核心就是我们这个后置处理器会来拦截这个创建过程,它拦截我们这个组件的创建过程,而怎么拦截呢?主要就是M在这在组件创建完成,组件创建完之后,它这有一个process after installation,它会来判断我们这个组件是否需要包装,就说是否需要增强来判断。
02:54
判断组件是否需要增强,那如果是它呢,就把咱们这些切面里边切的咱们这个通知方法啊,它来包装成,包装成咱们这个叫增强器,就是我们说的这些包装成这些增强器,然后呢,给其给咱们这个目标,给咱们这个目标对象。
03:24
到时给咱们这个业务逻辑组件吧,创建一个代理就行,当然这个呢,我们上一节课研究默认呢,它是用这个CGD啊,如果你有接口,它也能创建JDK动态代理,而这个代理对象里边呢,有我们所有的增强器,这个代理对象创建完以后,接下来,哎,我们这个容器创建就完了,接下来是我们这个执行目标方法,执行目标方法呢,那其实就是代理对象,代理对象要执行目标方法,而代理对象要执行目标方法,我们之前呢也看到了整个流程,他呢是啊,用这个进行拦截。
04:13
哎,比如说它是用这个CG力这个方法进行拦截,这个拦截的过程呢,就是哎,我们先来得到咱们这个目标方法的拦截器面,而这个拦截器面所谓的拦截器就是我们以前的增强器,哎,我们这个增强器包装成咱们这个拦截器,这个拦截器就是我们这些method的intercept就是这个,然后呢,整个利用拦截器链机制,然后呢,利用利用拦截器的链式机制。的链式机制,然后呢,依次进入,依次进入每一个拦截器进行执行,每一个拦截器,哎,进行执行,所以呢,整个就出来我们的执行效果先是啊,我们整个的执行效果就有两套效果,整个的执行效果呢就是两套,我们啊前面呢画了那个拦截器的图,整个呢应该是这样,先是我们这个前置通知拦前置通知的拦截器是在最后的啊,一步一步深入到最后,那它其实是先执行的,前置通知执行完了以后呢,才是目标方法,目标方法执行完以后是后置通知,从后置通知这分分支上两步,如果是方法是正常执行,那么我们后置通知执行完以后就是返回通知。
05:59
如果方法是异常执行,如果方法出现异常。
06:08
出现异常,那么呢,我们这一块就收到的是异常通知,它整个是通过拦截器量的方式来控制这个顺序的,那么这就是我们啊a op的原理总结,那我们也希望呢,透过这个a op我们走源码的方式,那么大家对spring里边的整个源码就有一个大致的了解和掌握,那么后来的这个源码希望大家呢啊,自己下边多走几遍来加深理解,我呢就给大家提供一个走源码的思路和对咱们整个spring框架大致流程的一个认识。
我来说两句