2021.4.11
阅读《精通Spring4.x企业应用开发实战》一书做笔记

下图为本人理解的AOP术语韦恩图,由于引介跟增强在同一个位置,没在图上标出。

连接点(Joint Point)

由两个组成:

  • 程序执行点
  • 相对位置表示的方位

Test.foo方法执行前的连接点:

执行点为Test.foo(),方位是执行前的位置。

切点(Pointcut)

每个程序有多无数多的连接点,如果程序中有一个方法,那么连接点就有方法执行前,方法执行后,异常抛出时,方法调用前后这些连接点。

Spring中通过切点来定位特定的连接点。

连接点相当于数据库的记录,切点相当于查询条件。

所以,切点不是点,切点是查询条件。

SpringAOP通过切点来找点连接点中的执行点,注意是执行点,因为切点只定位在某个方向,而不会提供方位信息。

增强(Advice)

增强是一段代码,注意增强是代码。

并且advice不是同志的意思,应该翻译成enhancer可能会更好。

在Spring中,增强除了是一段代码之外,它还提供了方位信息,比如:

BeforeAdvice、AfterReturnAdvice、ThrowAdvice。

目标对象(Target)

目标对象就是被被代理类。

引介(Introduction)

引介是一种特殊的增强,它为类添加了一些属性和方法。

通过引介可以让被代理类实现一些接口。

织入(Weaving)

织入是一个动作,也可以说是一个过程。

就是将增强织入到被代理类连接点的过程。

织入分为三种类型:

  • 编译期织入
  • 类装载期织入
  • 动态代理织入(Spring采取的做法)

代理(Proxy)

一个类被AOP织入增强之后,就会产生一个结果类。

其实动态代理的本质就是产生一个新的类,只是这个类由SpringAOP帮我们做了,对于我们来说是透明的。

切面(Aspect)

切面由两点组成:

  • 切点
  • 增强

既包含横切逻辑的定义,也包含连接点的定义。

SpringAOP的执行单位就是切面。

SpringAOP两大重点工作:

  • 如何通过切点和增强定位某一个连接点
  • 如何在增强中编写切面的代码。

有关AOP术语(织入、增强等)的个人理解相关推荐

  1. .Net Aop(静态织入)框架 BSF.Aop

    BSF.Aop .Net 免费开源,静态Aop织入(直接修改IL中间语言)框架,类似PostSharp(收费): 实现前后Aop切面和INotifyPropertyChanged注入方式. 开源地址: ...

  2. 从Spring源码探究AOP代码织入的过程

    随着不断地使用Spring,以及后续的Boot.cloud,不断的体会到这个拯救Java的生态体系的强大,也使我对于这个框架有了极大的好奇心,以至于产生了我为什么不能写一个这样的框架的思考. 通过自学 ...

  3. Java手写Spring的AOP(切面织入)小Demo--盲僧代理击飞 亚索接大实例

    在学习Spring的过程中总会很迷茫,打个@Aspect注解切面功能就有了,只要脱离了框架感觉自己还是什么都没会,所以自己猜了一下切面的思路,大概写了个小Demo,欢迎交流. 涉及知识:JDK动态代理 ...

  4. Java - 你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net a. 连接点(Joinpoint):程序执行的某个特 ...

  5. AOP相关术语(连接点、切入点、通知、引介、目标对象、织入、代理、切面)

    Joinpoint(连接点): 所谓连接点是指那些被拦截到的点.在spring中,这些点指的是方法,因为spring只支持方法类型的连接点.(通俗理解:业务层接口的所有方法都叫连接点) Pointcu ...

  6. Spring 揭秘之Spring AOP一世(2)织入实现

    文章目录 Spring AOP一世 Spring AOP的织入 与ProxyFactory打交道 基于接口的代理 基于类的代理 Introduction的织入 ProxyFactory的本质 容器中的 ...

  7. spring中的aop术语和细节

    Spring中AOP的细节 说明 我们学习spring的aop,就是通过配置的方式 AOP相关术语 Joinpoint(连接点): 所谓连接点是指那些被拦截到的点.在spring中,这些点指的是方法, ...

  8. AOP术语、SpringAOP

    AOP术语.SpringAOP AOP中的相关术语 SpringAOP中的实现 Spring对AOP的支持 示例 切点表达式.切点 切面 增强通知 织入 目标对象 结果 AOP中的相关术语 官方 As ...

  9. spring的AOP术语

    分析 技术分析之AOP的相关术语 1. Joinpoint(连接点) -- 所谓连接点是指那些被拦截到的点.在spring中,这些点指的是方法,因为spring只支持方法类型的连接点 2. Point ...

最新文章

  1. 蓝桥杯国赛-矩阵计数三种解法-java实现
  2. qchart画完以后删除_Unity2019基础教程:TileMap搭建像素画场景关卡
  3. 运用BeautifulSoup抓取网页的链接
  4. 11有没有压力感应_特殊感应器赋予机械手多维触感
  5. setid android,android-如何将setId()用于imageView
  6. 国内外公共CDN静态资源网站大全
  7. 基于ProtocolBuffer和ysocket的Swift即时通讯服务器搭建
  8. 使用Golang搭建web服务
  9. Git 代码防丢指南,再也不怕丢失代码了!
  10. linux异步事件框架,基于Cortex-M系列CPU的异步事件驱动中间件
  11. android专业拍照软件,安卓最专业的拍照软件排行榜 优质滤镜相机软件推荐
  12. 英语读音(一) English Pronounciation
  13. 【Mybatis】动态SQL之choose标签
  14. Win11的两个实用技巧系列之没有声音如何解决、bat代码怎么写
  15. sublime3编程c语言,Sublime Text 3 实现C语言代码的编译和运行(示例讲解)
  16. 日志20130104~0308
  17. 使用docker安装RAP2心得
  18. kNN分类算法伪代码最简python代码
  19. 【CodeForces】[546A]Soldier and Bananas
  20. 数据的商业化实现之商圈选址

热门文章

  1. 安卓学习文档收集汇总
  2. 如何查找SAP notes
  3. 关于LDO并联在输入输出端二极管
  4. oracle 使用 mybatis select in 10000问题怎么解决
  5. Oracle的字符集由AMERICAN_AMERICA.ZHS16GBK修改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  6. 如何用闲置手机/电脑摄像头,搭建远程视频监控
  7. 自我介绍 的html页面,html初学者自我介绍网页
  8. How to Use Matlab Publish Smartly
  9. 数据分析的三重境界,你在哪个阶段?
  10. md5 java 实现_MD5加密的Java实现