对于最新的稳定版本,请使用 Spring Framework 7.0.6!spring-doc.cadn.net.cn

AOP 代理

Spring AOP 默认使用标准的 JDK 动态代理来创建 AOP 代理。这使得任何接口(或一组接口)都可以被代理。spring-doc.cadn.net.cn

Spring AOP 还可以使用 CGLIB 代理。这在代理类而不是接口时是必需的。默认情况下,如果业务对象没有实现接口,则会使用 CGLIB。由于编程到接口而不是类是一种良好的实践,业务类通常实现一个或多个业务接口。在那些(希望很少)需要对未在接口上声明的方法进行通知,或者需要将代理对象作为具体类型传递给方法的情况下,可以强制使用 CGLIBspring-doc.cadn.net.cn

了解 Spring AOP 是基于代理的事实非常重要。有关此实现细节的实际含义的详细分析,请参阅 理解 AOP 代理spring-doc.cadn.net.cn