🤖
AI审核中

READING IN THE WILD · 读一篇手记

Spring AOP底层原理

文章摘要

Spring AOP 通过动态代理实现横向切面功能。若目标对象实现接口,Spring 使用 JDK Proxy 创建与接口同级的代理对象;若未实现接口,则采用 CGLIB 生成目标类的子类作为代理。代理对象在运行时拦截方法调用,实现与原实现类相同的功能,而无需修改源代码,从而完成 AOP 的横向扩展。

aop底层采用动态代理机制实现的:接口+实现类

  • 如果要代理的对象,实现了某个接口,那么Spring AOP会使用 JDK Proxy ,去创建代理对象。
  • 没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候Spring AOP会使用CGLIB生成一个被代理对象的子类来作为代理。

CGLIB与JDK动态代理详情点击:《CGLIB与JDK动态代理》

就是由代理创建出一个和impl实现类平级的一个对象,但是这个对象不是一个真正的对象,只是一个代理对象,但它可以实现和impl相同的功能,这个就是aop的横向机制原理,这样就不需要修改源代码。

1 条评论

如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧

评论区 1

头像
 1 条评论
召田最帅boy 博主