为了账号安全,请及时绑定邮箱和手机立即绑定

Spring AOP 什么时候使用 CGLIB 代理?

Spring AOP 什么时候使用 CGLIB 代理?

慕桂英546537 2021-07-08 10:00:49
我正在阅读一些关于 Spring AOP 的文章并遇到了这个:AOP 代理:AOP 创建的用于实现方面契约的对象。在 Spring 中,代理对象可以是 JDK 动态代理或 CGLIB 代理。默认情况下,代理对象将是 JDK 动态代理,被代理的对象必须实现一个接口,该接口也将由代理对象实现。但是像 CGLIB 这样的库也可以通过子类化来创建代理,因此不需要接口。你能不能看看下面的结构,想象一下我们要建议的bar()方法。public interface Foo {    void foo();}public class FooImpl implements Foo {    @Override    public void foo() {        System.out.println("");    }    public void bar() {        System.out.println("");    }}这是否意味着在这种情况下将使用 CGLIB 代理?由于 JDK 动态代理无法实现任何接口以覆盖bar()方法。
查看完整描述

3 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

请参阅Spring 文档中的AOP 代理:

Spring AOP 默认为 AOP 代理使用标准的 JDK 动态代理。这允许代理任何接口(或接口集)。

Spring AOP 也可以使用 CGLIB 代理。这是代理类而不是接口所必需的。默认情况下,如果业务对象未实现接口,则使用 CGLIB。


查看完整回答
反对 回复 2021-07-14
  • 3 回答
  • 0 关注
  • 358 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信