Spring Aop是什么
-
**今天就来谈谈 Spring Aop是什么,首先AOP(Aspect-Oriented Programming),即面向切面编程。它与OOP(面向对象编程)相辅相成,提供了与 OOP 不同的抽象软件结构的视角。在 OOP中,以类作为程序的基本单元,而AOP中的基本单元是Aspect(切面)。
-
AOP采取横向抽取机制,即将分散在各个方法中的重复代码提取出来,然后在程序编译或运行阶段,再将这些抽取出来的代码应用到需要执行的地方。这种横向抽取机制,采用传统的OOP是无法办到的,因为OOP实现的是父子关系的纵向重用。但是AOP不是OOP的替代品,而是OOP的补充,它们相辅相成。
在Spring AOP框架中,涉及以下常用术语
(1)切面
切面(Aspect)是指封装横切(切点+通知)到系统功能(如事务处理)的类。
(2)连接点
连接点(Joinpoint)是指程序运行中的一些时间点,如方法的调用或异常的抛出。
(3)切入点
切入点(Pointcut)是指那些需要处理的连接点,可以说是连接点的集合。在Spring AOP 中,所有的方法执行都是连接点,而切入点是一个描述信息,它修饰的是连接点,通过切入点确定哪些连接点需要被处理。
(4) 通知(Advice)
是指拦截到Joinpoint之后要做的事情,即对切入点增强的内容,根据通知时间分为,前置通知、后置通知、环绕通知、异常通知、
(5)目标(Target)
是指代理的目标对象。
(6)织入(Weaving)
是指把增强代码应用到目标上,生成代理对象的过程。
(7)代理(Proxy)
是指生成的代理对象。