Spring AOP中的几个概念

AOP,即面向切面编程,是对OOP的一种补充和完善,在OOP中由于有大量代码的重复导致不利于各个模块的重用,而AOP技术利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,提升了软件的可操作性和可维护性。

 AOP的基本概念

(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知,是对横切关注点的抽象。

(2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用,还可以是字段或则构造器。

(3)Advice(通知):AOP在特定的切入点上执行的增强处理,包含before,after,afterReturning,afterThrowing,around

(4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式

(5)AOP代理:AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以使JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类

(6)目标对象:代理的目标对象

(7)Waving(织入):将切面应用到目标对象并导致代理对象创建的过程

(8)Introduction(引入):在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法或字段

猜你喜欢

转载自www.cnblogs.com/CodeWithchenzhi/p/9248267.html