使用切面编程时,我们仍然在一个地方定义通用功能,但是可以通过声明的方式定义这个功能要以何种方式在何处使用。
术语
通知:切面的工作称为通知,有五种类型的通知
前置通知:在目标方法被调用之前,调用通知功能
后置通知:在目标方法完成之后,调用通知功能,此时不关心方法的输出
返回通知:在目标方法成功执行之后,调用通知功能
异常通知:在目标方法抛出异常后调用通知
环绕通知:通知包裹了被通知的方法,在被通知方法的调用之前和之后执行自定义行为连接点:可以应用通知(或叫做插入切面)的时机
切点:真正应用通知(或叫做插入切面)的连接点
切面:通知和切点的结合,即在切点处调用了什么通知
织入:把切面应用到目标对象并创建新的代理对象的过程,在目标对象的生命周期里有多个点可以进行织入
编译期:切面在目标类编译时被织入,如AspectJ
类加载期:切面在目标类加载到JVM时被织入
运行期:切面在应用运行的某个时刻被织入。一般情况下,在织入切面时,AOP容器会为目标对象动态地创建一个代理对象。Spring AOP就是以这种方式织入切面的。
未完待续。。。