Spring Framework中的CGLIB是什么?

时间:2016-06-29 02:10:23

标签: spring code-generation cglib

什么是CGLIB以及它与Spring的关系?在使用Spring Framework时,我们是否必须明确定义CGLIB的用法?

1 个答案:

答案 0 :(得分:18)

Ref Spring docs。 什么是CGLIB&它与Spring有什么关系?

  
    

CGLIB是一个代码生成库。 Spring使用CGLIB来生成代理。

  

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

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

通过xml:

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

通过注释:

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

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

您也可以查看this