Spring AOP 默认使用标准 JDK 动态代理作为 AOP 代理。这 允许代理任何接口(或一组接口)。
Spring AOP 也可以使用 CGLIB 代理。这对于代理类而不是 接口。默认情况下,如果业务对象未实现 接口。由于对接口而不是类进行编程是一种很好的做法,因此业务 类通常实现一个或多个业务接口。在那些(希望很少见的)情况下,您可以强制使用 CGLIB 需要通知未在接口上声明的方法,或者需要通知 将代理对象作为具体类型传递给方法。
掌握 Spring AOP 是基于代理的事实是很重要的。请参阅 Understanding AOP Proxies 以彻底检查它的具体内容 implementation detail 实际上是 Implementation。