【问题标题】:How to mix Cglib and JDK Proxy in Spring 4如何在 Spring 4 中混合使用 Cglib 和 JDK 代理
【发布时间】:2015-08-09 10:14:14
【问题描述】:

我是 Spring AOP 的新手,目前使用基于注释的方法来处理方面。我有一个关于 spring 4 中代理策略的查询。有什么方法可以强制 spring 为具体类创建一个 cglib 代理,为在同一应用程序上下文中实现接口的类创建一个 jdk 代理?

【问题讨论】:

    标签: spring


    【解决方案1】:

    这就是 Spring 的实际工作方式。代理实现接口的类的默认策略是使用 JDK 动态代理,对于没有实现任何接口的类,将创建 CGLIB 代理(不适用于最终类/方法)。

    更多:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#aop-proxying

    【讨论】:

    • 如果要代理的目标对象至少实现了一个接口,那么将使用 JDK 动态代理。目标类型实现的所有接口都将被代理。如果目标对象没有实现任何接口,那么将创建一个 CGLIB 代理。 在 Spring 文档中解释了 jdk 用于实现接口的对象,而 cglib 用于在同一应用程序上下文中未实现任何接口的对象。@SergiAlmar 做如果我的理解不正确,请纠正我。感谢您的及时回答。
    • 没错,您可能在同一个应用程序上下文中拥有 JDK 动态代理和 CGLIB 代理
    猜你喜欢
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多