前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何理解面向切面编程中的切面?

如何理解面向切面编程中的切面?

作者头像
wsuo
发布2020-09-10 14:45:12
1.3K0
发布2020-09-10 14:45:12
举报
文章被收录于专栏:技术进阶之路

在学习 Spring 中,有一个很重要的内容就是 AOP,面向切面编程。

  • 很多人疑惑为什么叫做面向切面?
  • 切面是什么意思,切入点是什么意思?

下面我以一种通俗易懂的方式谈谈我的理解。

切面与切入点

切面 = 切入点 + 额外功能。

我们先从几何的角度出发,我们都知道点构成面,任何一个面都是由很多个点构成的,比如桌面是由很多个木头点构成的,而这些木头点都有相同的特性:他们都是木头,如果我们想给这些木头点加一些额外的功能,让他们都变成红色的,只需要用红色的油漆将桌子刷成红色,相当于我们给桌子上的所有的点应用了一个红色的切面,其中红色就是额外功能。


假如现在我们有 3 个类,UserServiceImplOrderServiceImplProductServiceImpl

我们将他们类比成 3 个圆柱体:

  • 首先在这些圆柱体上各取一个点:相当于各取类中的一个方法。
  • 我们将这些点连起来,由此确定了一个平面:相当于将额外功能同时加到这几个方法上面。
  • 这个连起来得到的平面就是切面,切面上的点都附加了额外功能。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 切面与切入点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档