Heim  >  Artikel  >  Java  >  So verwenden Sie den Cglib-Proxy in Java

So verwenden Sie den Cglib-Proxy in Java

王林
王林nach vorne
2023-04-30 18:04:071613Durchsuche

Erklärung

1. Der Cglib-Proxy kann als Unterklassen-Proxy bezeichnet werden, der Unterklassenobjekte im Speicher erstellt, um die Funktionalität des Zielobjekts zu erweitern.

Sowohl statische Proxys als auch JDK-Proxys benötigen ein Objekt, um eine Schnittstelle zu implementieren. Manchmal ist das Proxy-Objekt nur ein einzelnes Objekt, und zu diesem Zeitpunkt kann der Cglib-Proxy verwendet werden.

2. Cglib generiert eine Proxy-Klasse über Enhancer und implementiert die Intercept-Methode durch Implementierung der MethodInterceptor-Schnittstelle.

Erweiterte Methoden können der Methode hinzugefügt werden und Originalmethoden können mithilfe der geerbten Klassen „reflective Method“ oder „MethodProxy“ aufgerufen werden.

Instanzen

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;
    }
}

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Cglib-Proxy in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen