为了账号安全,请及时绑定邮箱和手机立即绑定

【Spring实战——面向切面的Spring】1.2 Spring AOP术语

​ 与大多数技术一样,AOP已经形成了自己的术语。
file

描述切面的常用术 语有通知 (advice ) 、切点 (pointcut) 和连接点 (join point) 。
file

各位小猿,我们可以用一句话来概括各个元素之间的关系“把切面的功能(通知)织入到程序的执行过程中。

file
​ 图4 .2 在一个或多个连接点上,

通知 (Advice )

​ 当抄表员出现在我们家门口时,他们要登记用电量并回去向电力公司报告。显然,他们必须有一份需要抄表的住户清单,他们所汇报的信息也很重要,但记录用电量才是抄表员的主要工作。

file
​ 类似地,切面也有目标——它必须要完成的工作。在AOP术语中,切面的工作被称为通知。

Spring切面可以应用5种类型的通知:
file

连接点 (Join point)

​ 电力公司为多个住户提供服务,甚至可能是整个城市。每家都有一个 电表,这些电表上的数字都需要读取,因此每家都是抄表员的潜在目标。抄表员也许能够读取各种类型的设备,但是为了完成他的工作, 他的目标应该房屋内所安装的电表。

​ 同样,我们的应用可能也有数以千计的时机应用通知。

​ 这些时机被称为连接点。

切点 (Poincut)

​ 如果让一位抄表员访问电力公司所服务的所有住户,那肯定是不现实 的。实际上,电力公司为每一个抄表员都分别指定某一块区域的住 户。

​ 类似地,一个切面并不需要通知应用的所有连接点。切点有助于缩小切面所通知的连接点的范围。
file
​ 如果说通知定义了切面的“什么”和“何时”的话,那么切点就定义 了“何处” 。

有些AOP框架允许我们创建动态的切点,可以根据运行时的决策 (比如方法的参数值) 来决定是否应用通 知。     

切面 (Aspect)

​ 当抄表员开始一天的工作时,他知道自己要做的事情 (报告用电量) 和从哪些房屋收集信息。因此,他知道要完成工作所需要的一切东西。

切面是通知和切点的结合。通知和切点共同定义了切面的全部内容

——它是什么,在何时和何处完成其功能。

引入 (Introduction)

​ 引入允许我们向现有的类添加新方法或属性。

​ 例如,我们可以创建一 个Auditable通知类,该类记录了对象最后一次修改时的状态。这 很简单,只需一个方法,setLastModified (Date),和一个实例变量来保存这个状态。然后,这个新方法和实例变量就可以被引入到现有的类中,从而可以在无需修改这些现有的类的情况下,让它们具有新的行为和状态。

织入 (Weaving)

​ 织入是把切面应用到目标对象并创建新的代理对象的过程。切面在指定的连接点被织入到目标对象中。
file
我们已经了解了一些基础的AOP术语,现在让我们再看看这些AOP的 核心概念是如何在Spring中实现的。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消