
veranschaulichen
1. Der Cglib-Agent kann als Unterklassenagent bezeichnet werden, der Unterklassenobjekte im Speicher erstellt, um die Funktionalität des Zielobjekts zu erweitern.
Sowohl statische Proxys als auch JDK-Proxys erfordern ein Objekt zur Implementierung einer Schnittstelle. Manchmal ist das Proxy-Objekt nur ein einzelnes Objekt, und zu diesem Zeitpunkt kann der Cglib-Proxy verwendet werden.
2. Cglib generiert über Enhancer eine Proxy-Klasse und implementiert die Intercept-Methode durch Implementierung der MethodInterceptor-Schnittstelle.
Der Methode können Erweiterungsmethoden hinzugefügt werden, und die ursprüngliche Methode kann mithilfe einer reflektierenden Methode oder einer von MethodProxy geerbten Klasse aufgerufen werden.
Beispiel
Die öffentliche Klasse TVProxyCglib implementiert MethodInterceptor {
//Proxy-Objekt für das Zielobjekt erstellen public Object getProxyInstance(Class c){
//1. Tool-Klasse Enhancer Enhancer = new Enhancer();
//2.Legen Sie den Enhancer der übergeordneten Klasse fest.setSuperclass(c);
//3.Setzen Sie die Rückruffunktion Enhancer.setCallback(this);
//4. Erstellen Sie eine Unterklasse (Proxy-Objekt)
return Enhancer.create();
}
@Override
public Object intercept(Object o, Method method, Object[] Objekte, MethodProxy methodProxy) throws Throwable {
System.out.println("TVProxyFactory-Erweiterung....");
Objekt object = methodProxy.invokeSuper(o, Objekte);
Rückgabeobjekt;
}
}Das Obige ist die Verwendung des Cglib-Agenten in Java. Ich hoffe, dass es für alle hilfreich ist.
Weitere Java-Lernanleitungen: Java-Tutorial
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Java 10-Version, DELL G3-Computer.