




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
主講人:閭楓延遲符CGLIB動態代理SpringAOPCGLIB動態代理延遲符JDK的動態代理機制只能代理實現了接口的類,而不能實現接口的類就不能使用JDK的動態代理。當目標對象沒有實現任何接口時,SpringAOP會使用CGLIB(CodeGenerationLibrary)來創建代理對象。CGLIB(CodeGenerationLibrary)CGLIB代理也叫子類代理,它是在內存中構建一個子類對象從而實現對目標對象功能擴展。JDK動態代理只能對接口進行代理,而CGLIB既可以代理普通類,也能夠代理接口。CGLIB通過繼承目標對象來創建代理對象,代理對象是目標對象的子類,即是對指定的目標類生成一個子類,并覆蓋其中方法來實現增強。CGLIB動態代理延遲符學習案例案例代碼接下來,就通過一個案例來演示:CGLIB實現動態代理的過程。CGLIB動態代理代理-案例延遲符packagecom.test.dao;//員工接口類publicinterfaceEmployeeDAO{//添加員工publicvoidaddEmployee();//刪除員工publicvoiddeleteEmployee();}1.定義功能接口及實現類packagecom.test.dao;importorg.springframework.stereotype.Repository;@Repository//員工操作實現類publicclassEmployeeDAOImplimplementsEmployeeDAO{@OverridepublicvoidaddEmployee(){System.out.println("添加員工操作......");}@OverridepublicvoiddeleteEmployee(){System.out.println("刪除員工操作......");}}CGLIB動態代理-案例延遲符packagecom.test;//切面類,進行功能增強publicclassMyAspect{publicvoidlog(){System.out.println("模擬日志記錄......");}}2.定義切面類/***method攔截的方法*objects攔截方法的參數數組*methodProxy方法的代理對象,用于執行父類的方法*/@OverridepublicObjectintercept(Objecto,Methodmethod,Object[]objects,MethodProxymethodProxy)throwsThrowable{//創建切面類對象MyAspectmyAspect=newMyAspect();//功能前增強myAspect.log();//執行目標對象的目標方法Objectobj=methodProxy.invokeSuper(o,objects);//功能后增強myAspect.log();returnobj;}CGLIB動態代理-案例延遲符//CGLIB動態代理publicclassCGLIBProxyimplementsMethodInterceptor{//代理方法publicObjectcreateProxy(Objecttarget){//創建一個工具類對象Enhancerenhancer=newEnhancer();//設置需要增強的類,可以是類或接口enhancer.setSuperclass(target.getClass());//設置回調函數enhancer.setCallback(this);//生成代理類對象并返回returnenhancer.create();}}3.定義代理類CGLIB動態代理-案例延遲符publicclassCGLIBTest{publicstaticvoidmain(String[]args){//創建代理對象CGLIBProxycglibProxy=newCGLIBProxy();//創建目標對象EmployeeDAOemployeeDAO=newEmployeeDAOImpl();employeeDAO.addEmployee();employeeDAO.deleteEmployee();//通過切面,進行增強處理后System.out.println("-------------------------------");//從代理對象中獲取增強后的目標對象EmployeeDAOemployeeDAO1=(EmployeeDAO)cglibProxy.createProxy(employeeDAO)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西省漢中中學2025年數學高二第二學期期末聯考試題含解析
- 廈門市第六中學2024-2025學年物理高二第二學期期末達標測試試題含解析
- 云南省鳳慶縣第二中學2025年物理高二下期末學業質量監測模擬試題含解析
- T/IAC 14.2-2017責任保險承保指引第2部分:道路旅客運輸承運人責任保險
- 浙江工業大學《電磁場與傳輸理論B》2023-2024學年第二學期期末試卷
- 塔城職業技術學院《廣播電視節目形態研究》2023-2024學年第二學期期末試卷
- 四川省石室中學2024-2025學年高二數學第二學期期末調研試題含解析
- 云南省大理州麗江怒江2025屆數學高二第二學期期末經典試題含解析
- 后宮生存手冊設計分析
- T/GXSXFS 003-2020水產用菌酶協同發酵濃縮飼料
- 機械加工圖紙標注法資料
- HDB3編解碼電路設計
- 體系文件編號規則
- 公路安全監理細則
- 分布式系統復習題與答案
- 壓力彈簧力度計算器及計算公式
- (3)-小兒推拿促生長的診療思路及手法演示
- 唐宋名家詞智慧樹知到答案章節測試2023年河南大學
- 超星學習通《漢書》導讀(中國人民大學)章節測試答案
- 2023-2024學年浙江省衢州市初中語文七年級下冊期末提升試題
- GB/T 7735-2016無縫和焊接(埋弧焊除外)鋼管缺欠的自動渦流檢測
評論
0/150
提交評論