SSM-Spring-10:Spring中cglib動態代理
------------吾亦無他,唯手熟爾,謙卑若愚,好學若飢-------------
何為動態代理,就不扯皮了,上一篇部落格剛剛提到,那cglib動態代理又怎麼寫,我拿個和上個例子相似的案例來寫
具體案例:
一個SomeServiceImpl介面
package cn.dawn.day10cglibdtproxy; /** * Created by Dawn on 2018/3/8. */ public class SomeServiceImpl { public void doSome() { System.out.println("do something"); } }
一個測試類,我直接在測試類中使用cglib動態代理
package cn.dawn.day10cglibdtproxy; import org.springframework.cglib.proxy.Enhancer; import org.springframework.cglib.proxy.MethodInterceptor; import org.springframework.cglib.proxy.MethodProxy; import java.lang.reflect.Method; /** * Created by Dawn on 2018/3/8. */ public class Test { public static void main(String[] args) { //模板 final SomeServiceImpl service=new SomeServiceImpl(); //cglib動態代理 Enhancer enhancer=new Enhancer(); //設定模板 enhancer.setSuperclass(service.getClass()); //回撥函式 enhancer.setCallback(new MethodInterceptor() { public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { System.out.println("前置增強內容---------------"); methodProxy.invoke(service,objects); return null; } }); //建立代理物件 SomeServiceImpl proxy = (SomeServiceImpl)enhancer.create(); //代理物件呼叫原方法 proxy.doSome(); } }
他的寫法就如上所示,需要以上的註釋所標明的步驟
值得一提的是MethodProxy這個東西,他見過嗎?他類似Method都是對此類的方法的反射,但是前者是Spring在高版本後出現的,他的寫法優良,更具效能
相關文章
- spring aop原理 JDK動態代理和CGLIB動態代理SpringJDKCGLib
- CGLib 動態代理CGLib
- Java代理(jdk靜態代理、動態代理和cglib動態代理)JavaJDKCGLib
- 動態代理-cglib分析CGLib
- JDK動態代理和 CGLIB 代理JDKCGLib
- JDK動態代理和CGLib代理JDKCGLib
- 3.靜態代理&動態代理&CGlibCGLib
- 動態代理jdk的Proxy與spring的CGlibJDKSpringCGLib
- Spring動態代理的生成-如何判斷是使用JDK動態代理還是CGlib代理SpringJDKCGLib
- 代理模式詳解:靜態代理、JDK動態代理與Cglib動態代理模式JDKCGLib
- (轉)Java動態代理與CGLib代理JavaCGLib
- CGlib動態代理複習CGLib
- 靜態代理和動態代理(jdk/cglib)詳解JDKCGLib
- Java進階之 JDK動態代理與Cglib動態代理JavaJDKCGLib
- Java動態代理(JDK和cglib)JavaJDKCGLib
- 你必須會的 JDK 動態代理和 CGLIB 動態代理JDKCGLib
- CGLib動態代理原理及實現CGLib
- 【深度思考】聊聊CGLIB動態代理原理CGLib
- 聊聊cglib動態代理遇到的坑CGLib
- CGlib動態代理-簡單介紹CGLib
- 設計模式之cglib動態代理設計模式CGLib
- cglib動態代理和jdk動態代理的區別與應用CGLibJDK
- Spring原始碼剖析5:JDK和cglib動態代理原理詳解Spring原始碼JDKCGLib
- 由《尋秦記》說代理模式(靜態,動態,CGLib)模式CGLib
- 動態代理jdk和cglib的區別JDKCGLib
- SpringAOP中JDK和CGLib動態代理哪個更快?SpringJDKCGLib
- 最詳細的代理講解--JDK動態代理和cglib代理JDKCGLib
- 死磕Spring之AOP篇 - 初識JDK、CGLIB兩種動態代理SpringJDKCGLib
- 基於 CGLIB 庫的動態代理機制CGLib
- 從動態代理到Spring AOP(中)Spring
- Spring 動態代理Spring
- spring動態代理Spring
- JDK 和 CGLib 實現動態代理和區別JDKCGLib
- Java JDK Proxy和CGLib動態代理示例講解JavaJDKCGLib
- Jmh測試JDK,CGLIB,JAVASSIST動態代理方式的效能JDKCGLibJava
- 面試造火箭系列,栽在了cglib和jdk動態代理面試CGLibJDK
- Java動態代理 jdk和cglib的實現比較JavaJDKCGLib
- 設計模式【3.3】-- CGLIB動態代理原始碼解讀設計模式CGLib原始碼