Spring 框架中的 CGLIB 是什么?

What is CGLIB in Spring Framework?

什么是 CGLIB,它与 Spring 有什么关系?使用 Spring 框架时,我们是否必须明确定义 CGLIB 的用法?

参考 Spring docs。 什么是 CGLIB 以及它与 Spring 有什么关系?

CGLIB is a code generation library. Spring uses CGLIB, to generate proxies.

Spring AOP 默认使用标准 JDK 动态代理作为 AOP 代理。这使得任何接口(或接口集)都可以被代理。

是的,您必须明确告诉 spring 使用基于 CGLIB 的代理。

通过xml:

<aop:aspectj-autoproxy proxy-target-class="true"/> proxy-target-class 属性 设置为 true 将导致基于 CGLIB 的代理生效。

通过注释:

@Configuration
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class AppConfig {
   // ...
}

无需将 CGLIB 添加到您的 class 路径。从 Spring 3.2 开始,CGLIB 被重新打包并包含在 spring-core JAR 中。

你可能也看过 this