AOP的概念
面向切面编程
作用:在程序运行期间,不修改源码对已有方法进行增强
优势:减少重复代码,提高开发效率,维护方便
实现方式:使用动态代理技术
AOP的相关术语
1、Joinpoint(连接点):所谓连接点就是指那些被拦截到的点,在spring中,这些点指的是方法,因为spring中只支持方法类型的连接点
2、Pointout(切入点):所谓切入点是指我们要对哪些Joinpoint进行拦截的定义,指的就是被增强的方法
注意:所有的切入点都是连接点, 但是不是所有的连接点都是切入点
3、Advice(通知/增强):所谓通知就是指拦截到Joinpoint之后所要做的事情就是通知:前置通知,后置通知,异常通知,最终通知,环绕通知
4、Introduction(引介):是一种特殊的通知在不修改类代码的前提下,Introduction可以在运行期间为类动态的添加一些方法或Field
5、Target(目标对象):代理的对象目标
6、Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程
Spring采用动态代理织入,而AspectJ采用编译期织入和类装载期织入
7、Proxy(代理):
一个类被AOP织入增强后,就会产生一个结果代理类
8、Aspect(切面):是切入点和通知(引介)的结合