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.