我正在閱讀一些關(guān)于 Spring AOP 的文章并遇到了這個:AOP 代理:AOP 創(chuàng)建的用于實現(xiàn)方面契約的對象。在 Spring 中,代理對象可以是 JDK 動態(tài)代理或 CGLIB 代理。默認情況下,代理對象將是 JDK 動態(tài)代理,被代理的對象必須實現(xiàn)一個接口,該接口也將由代理對象實現(xiàn)。但是像 CGLIB 這樣的庫也可以通過子類化來創(chuàng)建代理,因此不需要接口。你能不能看看下面的結(jié)構(gòu),想象一下我們要建議的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 動態(tài)代理無法實現(xiàn)任何接口以覆蓋bar()方法。
3 回答

HUH函數(shù)
TA貢獻1836條經(jīng)驗 獲得超4個贊
請參閱Spring 文檔中的AOP 代理:
Spring AOP 默認為 AOP 代理使用標準的 JDK 動態(tài)代理。這允許代理任何接口(或接口集)。
Spring AOP 也可以使用 CGLIB 代理。這是代理類而不是接口所必需的。默認情況下,如果業(yè)務對象未實現(xiàn)接口,則使用 CGLIB。
添加回答
舉報
0/150
提交
取消