avatar

手写一个AOP的实现

什么是AOP

AOP(Aspect Oriented Programming)-面向切面编程,在运行时,动态地将代码切入到类地指定方法、指定位置上的编程思想就是面向切面编程。
AOP是Spring提供的关键特性之一。AOP即面向切面编程,是OOP编程的有效扩充。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关逻辑——比如权限管理,事务管理,日志记录等等。这些系统性的便策划给你工作都可以独立编码实现,然后通过AOP技术切入进系统即可,从而达到了将不同的关注点分离出来的效果。

AOP相关的概念

  • Aspect:切面,切入系统的一个切面,比如事务管理是一个切面,权限管理也是一个切面;
  • Join point:连接点,也就是可以进行横向切入的位置
  • Advice:通知,切面在某个连接点执行的操作(分别为:Before advice,After returning advice,After throwing advice,After(finally) advice,Around advice)
  • Pointcut:切点,符合切点表达式的连接点,也就是真正被切入的地方。

AOP实现原理

AOP实现的基础就是动态代理,什么是动态代理。代理说的是一种设计模式–代理设计模式,动态代理是使用Cglib或者JDK实现动态代理。

手写AOP

文章作者: zenshin
文章链接: https://zlh.giserhub.com/2020/04/30/spring/aop/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zenshin's blog
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论