Spring 2.5 — Aspectj
连接点( pinpoint)(类中所有方法)
切入点( Pointcut)(确实共性功能代码的方法)
通知( Advice)(被抽取的共性功能的代码逻辑,通知有位置区分,也就是从切入点方法中被抽取代码的前面还是后面抽象出来的代码,叫通知类型。前置通知、后置通知)・
引入( ( Introduction)(了解,通知只能抽取逻辑代码,变量是拿不出来的,把变量引入到切入点方法中去,就要用引入)
目标对象( Target Object):有切入点方法的对象
AOP代理( AOP Proxy): Spring代理目标对象就叫做AOP
代理织入( Weaving):代理对象把通知织入到目标对象的切入点方法中,是一个动作(Ape:通知和切入点之间的关系
完整的业务逻辑并进行运行,此过程称为织入。织入分为3个种类:编译期织入、装载时织入、运行时织入。其中 Spring是运行时织入。
编译期织入:执行时效率高,不够灵活
装载时织入:稍微灵活,可以在yVM装载目标类对象和声明类对象的时候进行合并,效率已经不够高
运行时织入:最灵活,通过配置文件进行目标类对象和通知进行合并的,效率低
AOP通知类型
通知类型就是共性代码是在目标对象方法的代码的前面还是后面执行的类型就是通知类型。类型:位置的意思AP的通知类型共5种、
before:前置通知(应用:各种校验在方法执行前执行该方法中出现了异常,不会影响前置通知的执行
after::后通知(应用:清理现场方法执行完毕后执行,无论方法中是否出现异常
3、 afterreturning:返回后通知(应用:常规数据处理)方法正常返回后执行,如果方法中抛出异常,无法执行。
4、 afterthrowing:抛出异常后通知(应用:包装异常信息方法抛出异常后执行,如果方法没有抛出异常,无法执行。
5、 around:环绕通知(应用:十分强大,可以做任何事情方法执行前后分别执行