AOP的基本概念
- Aspect(切面):
通常是一个类,里面可以定义切入点和通知。通常是抽取出来的一些代码组成,比如在事务处理时,会将事务处理的代码抽取成方法(通知方法)。 - Advice(通知):
通知就是指上述抽取的方法 - Pointcut(切入点):
需要执行通知的位置,在程序中主要体现为书写切入点表达式 - Weaving(织入):
是将通知代码写入切点位置的动作 - JointPoint(连接点):
调用方法的位置
通知方法
- 前置通知:在我们执行目标方法之前运行(@Before)
- 后置通知:在我们目标方法运行结束之后 ,不管有没有异常(@After)
- 返回通知:在我们的目标方法正常返回值后运行(@AfterReturning)
- 异常通知:在我们的目标方法出现异常后运行(@AfterThrowing)
- 环绕通知:动态代理, 需要手动执行joinPoint.procced()(其实就是执行我们的目标方法执行之前相当于前置通知, 执行之后就相当于我们后置通知(@Around)