Spring AOP是构成Spring框架的重要基石,spring AOP 构建在IOC
之上,和ioc浑然天成,统一于Spring容器之中。
AOP有特定的应用场合:适合于具有特定逻辑的应用场合,如性能检测,访问控制,事物管理以及日志记录。
AOP(Aspect Oriented Programing)面向切面编程,根据软件重构的思想,如果多个类中出现相同的代码,将这些相同的代码提取到父类中,AOP通过横向抽取机制为这类无法通过纵向继承体系进行抽象的重复性代码提供了解决方按。
AOP术语:
1,连接点(JoinPooint):程序执行的某个特定位置,如类的开始初始化前,类的初始化后,类的某个方法调用前/后,方法抛出异常后。一个类或者一段代码拥有一些边界性质的特定点,这就是连接点。Spring仅支持方法的连接点,即仅能在方法调用前,方法调用后,方法抛出异常时及方法调用前后这些程序执行点织入增强;
2,切点(Pointcut):每个程序类都拥有多个连接点,在多个连接点中定位我们想要的连接点。AOP通过切点定位连接点,切点和连接点不是一对一的关系,一个切点可以匹配多个连接点。。
3,增强(Advice):增强是织入到目标类连接点上的一段程序代码,Spring中增强除了用于描述一段程序代码外,还拥有另一个和连接点相关的信息,执行点的方位。Spring 提供的接口都是带方位名的:BeforeAdvice、AfterReturningAdvice,等
4,目标对象(Target):增强逻辑的织入目标类
5,引介(Introduction):引介是特殊的增强,他为类添加一些属性和方法。
6,织入(Weaving):将增强添加到目标类的具体链接点的过程。
7,代理(Proxy): 一个类被AOP织入增强后,就产出了一个结果类,它是融合了原类和增强逻辑的代理类。根据不同的代理方式,代理类既可能是和原类具有相同接口的类,也可能就是原类的子类,所以我们可以采用调用原类相同的方式调用代理类。
8,切面(Aspect):切面由切点和增强组成,他既包括横切逻辑的定义,也包括连接点的定义。
总的来说:AOP的工作重心在于如何将增强应用于目标对象的连接点上,这包括第一,如何通过切点和增强定位到连接点,第二,如何在增强中编写切面代码。
原文地址:https://www.cnblogs.com/shoose17/p/11371577.html