AOP (Aspect Oriented Programming)面向切面的编程——Spring框架的重要特征之一。
在应用程序的开发过程中,很多业务都需要支持同样的功能,包括事务处理、安全管理、日志管理、调试管理等,AOP的核心概念是将这些通用功能从业务逻辑中分离出来,将其形成独立的功能模块,然后在业务组件需要的地方注入这些功能模块,它们属于应用程序中的一个特殊层,该层称为Aspect。.基于切面概念的开发,即面向切面的编程。
AOP包括三个概念:
1、连接点(Joinpoint)需要注入这些功能模块的位置被称为连接点,连接点可能存在于不同业务组件中,他们可以再方法的调用点上,也可以再异常的抛出点上。
2、切点(Pointcut)指多个连接点的集合,通常需要在多个位置插入同样的功能模块,如日志模块。需要多个连接点的切入,这些连接点组成切点。
3、目标对象——连接点所在的对象,也就是切入功能模块的目标,称为目标对象。
4、通知(Adivice)功能模块的处理逻辑称为通知
Around通知——在连接点前后分别执行切入的功能模块。
Before通知——在连接点前执行切入的功能模块。
After通知——在连接点后执行切入的功能模块。
Throws通知——在抛出异常时执行切入的功能模块。
AOP概念及之间的联系