3.AOP 的代理有哪⼏种⽅式?

AOP 思想的实现⼀般都是基于代理模式 ,在 Java 中⼀般采⽤ JDK 动态代理模式,但是我们都知道,JDK 动态代理 模式只能代理接⼝⽽不能代理类。因此,Spring AOP 会按照下⾯两种情况进⾏切换,因为 Spring AOP 同时⽀持 CGLIB、ASPECTJ、JDK 动态代理。

  1. 如果⽬标对象的实现类实现了接⼝,Spring AOP 将会采⽤ JDK 动态代理来⽣成 AOP 代理类;

     

  2. 如果⽬标对象的实现类没有实现接⼝,Spring AOP 将会采⽤ CGLIB 来⽣成 AOP 代理类。不过这个选择过程 对开发者完全透明、开发者也⽆需关⼼。

posted @ 2021-08-12 11:49  RainsX  阅读(113)  评论(0)    收藏  举报