java中Cglib代理的使用

longmanma發表於2021-09-11

java中Cglib代理的使用

說明

1、Cglib代理可以稱為子類代理,是在記憶體中構建子類物件,從而擴充套件目標物件的功能。

靜態代理和JDK代理都需要一個物件來實現一個介面。有時候代理物件只是一個單獨的物件,Cglib代理可以在這個時候使用。

2、Cglib透過Enhancer生成代理類,透過實現MethodInterceptor介面,實現intercept方法。

可以在該方法中新增增強方法,並可以使用反射Method或MethodProxy繼承類來呼叫原始方法。

例項

public class TVProxyCglib implements MethodInterceptor {
 
    //給目標物件建立一個代理物件
    public Object getProxyInstance(Class c){
        //1.工具類
        Enhancer enhancer = new Enhancer();
        //2.設定父類
        enhancer.setSuperclass(c);
        //3.設定回撥函式
        enhancer.setCallback(this);
        //4.建立子類(代理物件)
        return enhancer.create();
    }
 
    @Override
    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        System.out.println("TVProxyFactory enhancement.....");
        Object object = methodProxy.invokeSuper(o, objects);
        return object;
    }
}

以上就是java中Cglib代理的使用,希望對大家有所幫助。更多Java學習指路:

本教程操作環境:windows7系統、java10版,DELL G3電腦。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2730/viewspace-2828750/,如需轉載,請註明出處,否則將追究法律責任。

相關文章