最开始以为切面就做做打印日志的工作,没怎么关注,也没怎么去用。最近发现,其作用还是很强大的。所以,先学习下spring 的AOP如何使用。
首先了解几个概念:
- Joinpoint(连接点)
所谓连接点就是那些被拦截的点(也就是需要被拦截的类的方法)。在Spring中,这些点指的只能是方法,因为Spring只支持方法类型的拦截,实际上Joinpoint还可以拦截field或类构造器。 - Pointcut 切入点
所谓切入点是指那些我们对Jointpoint(连接点)进行拦截的定义,也就是在切面中定义的方法,并声明该方法拦截了Jointpoint(连接点)。 - Aspect指横切性的关注点的抽象即为切面,它与类相似,只是两者的关注点不一样,类是对物体特征的抽象,而切面是对横切性关注点的抽象。
- Advice(通知)
所谓通知就是指切入点拦截到Jointpoint(连接点)之后要做的事情。通知分为前置通知(@Before)、后置通知(@AfterReturning)、异常通知(@AfterThrowing)、最终通知(@After)和环绕通知(@Around)。 - Target(目标对象)
代理的目标对象。 - Weave(织入)
指将aspects应用到target对象并导致proxy对象创建的过程称为织入。
结果上面定义,看一看如何利用spring注解使用AOP。
@Aspect