1、连接点(Joinpoint):
连接点是程序执行过程中可以插入切面的特定的点。这个点可以是调用方法时,抛出异常时,甚至修改字段时,
对于Spring而言,只支持方法连接点。
2、切点(Pointcut):
一个类有很多方法,这些方法都是连接点,但是并不是每一个方法都要插入切面,那么就要经过特定的条件过滤,这些
经过过滤后要插入切面的方法被称为切点,所以切点是由一个活多个连接点组成,是连接点集合的一个子集。
3、通知(Advice):
切面所要完成的工作称为通知,它定义的前切点前(before)还是切点后(after)做什么,可理解为”何时“、”干什么“。
Spring有5种类型的通知:
① Before:前置通知,在切点方法之前执行。
② After :后置通知,在切点方法返回后通知,无论方法是否执行成功。
③ After-returning:返回后通知,在切点方法成功执行之后调用通知。
④After-throwing:抛出后通知,在切点方法抛出异常后调用通知。
⑤Arount:环绕通知,既在方法调用前又在方法调用后调用通知。并且可以决定这个方法是否执行,什么时候执行。
4、切面(Aspect):
通知和切点的结合就是切面。
5、引入(Introduction):
引入就是为一个类添加新的方法和属性,从而在不改变现有类的情况下让他们具有新的行为和属性。
6、织入(Weaving):
织入是切面应用到目标对象的过程,在目标对象的运行周期里有多个点可以进行织入。
①编译期:在切面目标类被编译的时候织入。AspectJ就是编译期织入。
②类加载期:切面目标类被加载到JVM是织入。
③运行时:切面在运行的某个时刻织入,Spring AOP就是通过这种方式织入的,AOP容器会为目标对象动态的创建一个代理对象。
时间: 2024-11-07 13:03:23