JoinPoint 是什么

834 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情

AOP 的逻辑是如何实现的

AOP 目前的实现的根本还是要通过某种方式将相关的逻辑集成到系统语言实现的OOP 实体业务对象的组合中去。

所以我们通常称呼AOL 为一种“寄生语言”。

使用专业的术语“织入(Weave)”来表述将AOP 中的逻辑集成到OOP 系统中的过程。

而有读者可能好奇,系统是如何将AOP 的逻辑“织入”到OOP 的组合对象中去的,其实这个过程对开发者来说是完全透明的,我们仅仅需要实现自己的业务需求及系统需求即可,当所有的业务需求和系统需求以模块化的方式开发完成之后,通过织入方法就可以集成整个软件系统,并投入使用中了。

JoinPoint 的概念

JoinPoint 的中文翻译是“连接点”,或者“执行点”。

在系统运行之前,通过AOP 定义的逻辑都需要“织入”到OOP 的各个功能模块之中去。

但是,在织入之前,我们需要考虑,我们应该将对应的逻辑织入到业务对象的哪个位置中,同时我们也要通过某种方法告诉系统这个“织入点”。这个执行织入的点就被称为JoinPoint。

系统在获知了JoinPoint 之后,系统就可以根据相关的AOJ 的定义来完成相应的逻辑的织入工作了。

其实,程序执行的任何时间点都可以作为JoinPoint,一般来说,以下几个是一些比较常见的JoinPoint:

  1. 类初始化
  2. 方法(构造方法)调用
  3. 方法(构造方法)调用执行
  4. 字段获取
  5. 字段设置

基本可以这么说,系统运行期间,在程序的执行的过程中一些必要的执行点都可以作为JoinPoint。所以这依旧映射了那句话:Spring 是一个可以高度定制化的框架。

总结

这篇文章我们主要介绍JoinPoint 是什么,首先从AOP 的逻辑如何实现讲起,然后介绍了JoinPoint 的概念。