Spring 3 AOP 0 AOP基础

来源:互联网 发布:java判断文件是否存在 编辑:程序博客网 时间:2024/06/03 10:38
AOP的基本概念
连接点(Join point):表示程序运行中的某一点,可能是方法调用或处理异常等等,Spring只支持方法执行连接点。

通知(Advice):在连接点上执行的行为,包括前置通知(before advice)、后置通知(after advice)、环绕通知(around advice)。 

切入点(Pointcut):一种描述连接点的语言,即可以认为连接点的集合,Spring默认使用AspectJ语法,在AOP中表示为“在哪里干的集合”; 

引入(inter-type declaration):也称为内部类型声明,为已有的类添加额外新的字段或方法,Spring允许引入新的接口(必须对应一个实现)到所有被代理对象(目标对象), 在AOP中表示为“干什么(引入什么)”; 
 
织入(Weaving):织入是一个过程,是将切面应用到目标对象从而创建出AOP代理对象的过程,织入可以在编译期、类装载期、运行期进行。 

目标对象(Target Object):需要被织入横切关注点的对象,即该对象是切入点选择的对象,需要被通知的对象,从而也可称为“被通知对象”;由于Spring AOP 通过代理模式实现,从而这个对象永远是被代理对象,在AOP中表示为“对谁干”;

AOP代理(AOP Proxy):AOP框架使用代理模式创建的对象,从而实现在连接点处插入通知(即应用切面),就是通过代理来对目标对象应用切面。在Spring中,AOP代理可以用JDK动态代理或CGLIB代理实现,而通过拦截器模型应用切面。 



AOP 分类,有2种类型的AOP:静态和动态。两者之间的区别是Weaving发生的时候。
静态AOP,是指AOP的实现通过修改字节码完成。
动态AOP,在运行时完成,Spring是通过代理方式

Spring缺省使用JDK动态代理来实现,从而任何接口都可别代理,如果被代理的对象实现不是接口将默认使用CGLIB代理,不过CGLIB代理当然也可应用到接口。






原创粉丝点击