AOP的相关概念
切面(Aspect): 封装通用业务逻辑的组件,即我们想要插入的代码内容. 在spring AOP中, 切面可以使用通用类基于模式的方式, 或者在普通类中标注@Aspect注解来实现
连接点(Join point): 连接点是在应用执行过程中能够插入切面的点。简单理解, 可以理解为需要增强的方法.
通知(Advice): 用于指定具体产生作用的位置,是方法之前或之后等等
前置通知(before) - 在目标方法被调用之前调用通知功能
后置通知(after) - 在目标方法完成之后调用通知(不论程序是否出现异常),此时不会关心方法的输出是什么
返回通知(after-returning) - 在目标方法成功执行之后调用通知
异常通知(after-throwing) - 在目标方法抛出异常后调用通知
环绕通知(around) - 通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为
目标对象(target): 目标对象是指要被增强的对象, 即包含主业务逻辑的类对象
切点(PointCut): 指定哪些Bean组件的哪些方法使用切面组件. 例如:当执行某个特定名称的方法时.我们定义一个切点(execution com.lxl.www.aop..(..)) . 切点表达式如何和连接点匹配是AOP的核心. spring默认使用AspectJ切点语义.
织入(Weaving): 将通知切入连接点的过程叫做织入
引入(Introductions): 可以将其它接口或者实现动态引入到targetClass中