09-秒杀AOP常用术语,一篇就够

AOP的常用术语,常常是初学者感觉比较乏味的,下面我们结合上一篇文章的图来进行对照说明。

建议大家可以先看下后面的图,再来对比下前面的说明,会更清晰

1,切面(Aspect)

比如上文讨论的数据库事务,这个数据库事务代码贯穿了我们的整个代码,我们就可以这个叫做切面。

SpringAOP将切面定义的内容织入到我们的代码中,从而实现前后的控制逻辑。

比如我们常写的拦截器Interceptor,这就是一个切面类

2,通知(Advice)

通知是直译过来的结果,我个人感觉叫做“业务增强”更合适

对照代码就是拦截器定义的相关方法,通知分为如下几种:

前置通知(before):在执行业务代码前做些操作,比如获取连接对象

后置通知(after):在执行业务代码后做些操作,无论是否发生异常,它都会执行,比如关闭连接对象

异常通知(afterThrowing):在执行业务代码后出现异常,需要做的操作,比如回滚事务

返回通知(afterReturning),在执行业务代码后无异常,会执行的操作

最后,还有环绕通知(around),这个目前跟我们谈论的事务没有对应的操作,所以暂时不谈

3,切点(Pointcut)

切点用于来限定Spring-AOP启动的范围,通常我们采用表达式的方式来设置,所以关键词是范围

4,连接点(Join point)

连接点表示具体要拦截的方法,上面切点是定义一个范围,而连接点是具体到某个方法

5,织入(weaving)

织入是一个形象的说法,具体来说,就是生成代理对象并将切面内容融入到业务流程的过程。

要理解Spring-AOP,大家一定要理解代理模式,这个很重要。如果大家对代理模式还不是特别了解,我会在之后补上这样的文章。


最后,我们再次以之前的图来说明这些术语所对应的部分

09-秒杀AOP常用术语,一篇就够

图片上传之后,会变得模糊,大家如果有好的方式,欢迎给我推荐,谢谢!


分享到:


相關文章: