AOP核心概念
1、横切关注点
对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点
2、切面(aspect)
类是对物体特征的抽象,切面就是对横切关注点的抽象
3、连接点(joinpoint)
被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器
4、切入点(pointcut)
对连接点进行拦截的定义
5、通知(advice)
所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类
6、目标对象
代理的目标对象
7、织入(weave)
将切面应用到目标对象并导致代理对象创建的过程
8、引入(introduction)
在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法或字段
OR:
18:切面(Aspect)
AOP的核心就是切面,它将多个类的通用行为封装为可重用的模块。 该模块含有一组API提供 cross-cutting功能。 例如,日志模块称为日志的AOP切面。 根据需求的不同,一个应用程序可以有若干切面。在Spring AOP中,切面通过带有@Aspect注解的类实现。 19:在Spring AOP中concern和 cross-cutting concern的区别是什么? Concern(核心逻辑):表示在应用程序中一个模块的行为。Concern可以定义为我们想要实现的功能。 Cross-cutting concern(横向的通用逻辑):指的是整个应用程序都会用到的功能,它影响整个应用程序。 例如,日志管理(Logging)、安全管理(Security)以及数据交互是应用程序的每个模块都要涉及到的, 因此这些都属于Cross-cutting concern。 20:连接点(Join point) 连接点代表应用程序中插入AOP切面的地点。它实际上是Spring AOP框架在应用程序中执行动作的地点。 21:通知(Advice) 通知表示在方法执行前后需要执行的动作。实际上它是Spring AOP框架在程序执行过程中触发的一些代码。 Spring切面可以执行一下五种类型的通知: before(前置通知):在一个方法之前执行的通知。 after(最终通知):当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)。 after-returning(后置通知):在某连接点正常完成后执行的通知。 after-throwing(异常通知):在方法抛出异常退出时执行的通知。 around(环绕通知):在方法调用前后触发的通知。 22:切入点(Pointcut) 切入点是一个或一组连接点,通知将在这些位置执行。可以通过表达式或匹配的方式指明切入点。