課程
/后端開發(fā)
/Java
/Spring入門篇
cglib,jdk
2017-08-04
源自:Spring入門篇 7-3
正在回答
1、若代理類無接口,則使用CGLIB代理,否則使用JDK代理。
2、也可以通過設(shè)置proxyTargetClass為true,強制使用CGLIB代理。
3、如果proxyInterfaces屬性被設(shè)置為一個或者多個全限定接口名,則使用JDK代理;如果該屬性沒有被設(shè)置,但是目標類實現(xiàn)了接口,也使用JDK代理。
無計留春住 提問者
Java動態(tài)代理是利用反射機制生成一個實現(xiàn)代理接口的匿名類,在調(diào)用具體方法前調(diào)用InvokeHandler來處理。
而cglib動態(tài)代理是利用asm開源包,對代理對象類的class文件加載進來,通過修改其字節(jié)碼生成子類來處理。
1、如果目標對象實現(xiàn)了接口,默認情況下會采用JDK的動態(tài)代理實現(xiàn)AOP?2、如果目標對象實現(xiàn)了接口,可以強制使用CGLIB實現(xiàn)AOP?
3、如果目標對象沒有實現(xiàn)了接口,必須采用CGLIB庫,spring會自動在JDK動態(tài)代理和CGLIB之間轉(zhuǎn)換
舉報
為您帶來IOC和AOP的基本概念及用法,為后續(xù)高級課程學習打下基礎(chǔ)
1 回答spring的一個IOC容器怎么理解?
2 回答如何學習Spring?如何理解IOC
1 回答這個ioc的解釋還是不知道怎么理解,總之ioc還是不怎么懂
1 回答Spring 容器就是IOC容器就是bean容器嗎??
1 回答請求一個關(guān)于實際存在的問題?cglib為什么在spring aop中方法嵌套方法會發(fā)現(xiàn)調(diào)用的還是真實對象,而不是代理對象?而單獨使用cglib調(diào)用的都是super父類方法
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-08-05
1、若代理類無接口,則使用CGLIB代理,否則使用JDK代理。
2、也可以通過設(shè)置proxyTargetClass為true,強制使用CGLIB代理。
3、如果proxyInterfaces屬性被設(shè)置為一個或者多個全限定接口名,則使用JDK代理;如果該屬性沒有被設(shè)置,但是目標類實現(xiàn)了接口,也使用JDK代理。
2017-08-05
Java動態(tài)代理是利用反射機制生成一個實現(xiàn)代理接口的匿名類,在調(diào)用具體方法前調(diào)用InvokeHandler來處理。
而cglib動態(tài)代理是利用asm開源包,對代理對象類的class文件加載進來,通過修改其字節(jié)碼生成子類來處理。
1、如果目標對象實現(xiàn)了接口,默認情況下會采用JDK的動態(tài)代理實現(xiàn)AOP?
2、如果目標對象實現(xiàn)了接口,可以強制使用CGLIB實現(xiàn)AOP?
3、如果目標對象沒有實現(xiàn)了接口,必須采用CGLIB庫,spring會自動在JDK動態(tài)代理和CGLIB之間轉(zhuǎn)換