【问题标题】:What is CGLIB in Spring Framework? [closed]Spring 框架中的 CGLIB 是什么? [关闭]
【发布时间】:2016-10-31 13:08:48
【问题描述】:

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

【问题讨论】:

    标签: spring code-generation cglib


    【解决方案1】:

    参考弹簧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。

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 1970-01-01
      • 2010-11-06
      • 2012-03-16
      • 2017-01-04
      • 2013-04-20
      • 1970-01-01
      • 2017-01-22
      相关资源
      最近更新 更多