AOP(Aspect Oriented Programming) 面向切面编程
Spring 使用动态代理技术对一些具有相同增强功能的业务方法进行解耦的一种实现,所谓切面,可以暂时理解为这个增强方法和被增强的业务方法
首先应该了解一些重要概念
-
Target(目标对象):被代理的对象
-
joinPoint(连接点):目标对象,所有可以增强的方法。
-
PointCut(切入点):真正要被增强的方法,是连接点的一部分
-
Advice(通知/增强):拦截到连接点进行的增强部分
-
Aspect(切面):切入点+通知
-
Weaving(织入):将通知应用到切入点的过程。
对于动态代理机制如果不熟悉,可以看我的另一篇文章动态代理模式
AOP技术实现的内容
Spring框架监控接入点方法的执行,一旦监控到切入点方法被执行,就会启动代理机制,动态的创建目标对象的代理对象,根据通知的类别,在代理对象的对应位置,将增强的功能织入,完成代码运行