我正在阅读一些关于 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。
添加回答
举报
0/150
提交
取消