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