ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
**切面(Aspect):** 切面可以理解为一个对象或对象的一个方法。一般如果一个对象有两个不同功能的方法,我们可以理解这两个方法就是两个切面。切面由切入点和通知(增强)组成。 <br/> **连接点(JoinPoint):** 连接点就是被拦截到的程序执行点,因为 Spring 只支持方法类型的连接点,所以在 Spring 中连接点就是被拦截到的方法。其实就是我们自定义的业务方法。 <br/> **切入点(pointcut):** 切入点的作用就是提供一组规则来匹配连接点,给满足规则的连接点添加通知。 ```xml <!-- 下面将会在 xml 文件中定义如下的 aop:pointcut 标签,expression 定义的规则就是切入点 --> <aop:pointcut id="add" expression="execution(public void add(int, int))"/> ``` <br/> **增强(Advice):** 增强是指拦截到连接点之后要执行的代码,该代码就是切面中封装处理日志、管理事务、权限管理等公共模块的方法。 <br/> 增强共有5种类型,分别是:前置增强(before)、后置增强(afterReturnning)、最终增强(after)、环绕增强(aroud)、异常增强(afterThrowing)。 <br/> **目标对象(Target object):** 就是符合切入点规则所匹配的方法所在的对象。 <br/> **织入(Weaving):** 将切面和业务逻辑对象连接起来,并创建通知代理的过程。织入可以在编译时,类加载时和运行时完成。在编译时进行织入就是静态代理,而在运行时织入就是动态代理。