Heim  >  Artikel  >  Java  >  Der Unterschied zwischen dem dynamischen JDK-Proxy und CGLIB

Der Unterschied zwischen dem dynamischen JDK-Proxy und CGLIB

angryTom
angryTomOriginal
2020-02-17 16:34:344239Durchsuche

Der Unterschied zwischen dem dynamischen JDK-Proxy und CGLIB

Der Unterschied zwischen JDK Dynamic Proxy und CGLIB

1. JDK Dynamic Proxy:

Verwendung von Interception Der Interceptor (der Interceptor muss InvocationHanlder implementieren) und der Reflexionsmechanismus generieren eine anonyme Klasse, die die Proxy-Schnittstelle implementiert.

Ruft InvokeHandler auf, bevor die spezifische Methode aufgerufen wird.

(Zugehörige Video-Tutorial-Freigabe: Java-Video-Tutorial)

2. CGLiB dynamischer Proxy:

Verwendung von ASM Open Source Paket, laden Sie die Klassendatei der Proxy-Objektklasse und verarbeiten Sie sie, indem Sie ihren Bytecode ändern, um eine Unterklasse zu generieren.

3. Was ist der Unterschied zwischen dem dynamischen JDK-Proxy und der CGLIB-Bytecode-Generierung?

1. Der dynamische JDK-Proxy kann nur Proxys für Klassen generieren, die Schnittstellen implementieren, nicht jedoch für Klassen.

2. CGLIB implementiert hauptsächlich eine Unterklasse für die angegebene Klasse, überschreibt die Methoden, um eine Verbesserung zu erreichen Es ist am besten, es nicht als endgültig zu deklarieren. Endgültige Klassen oder Methoden können nicht vererbt werden.

Weitere Java-bezogene Tutorials finden Sie auf der chinesischen PHP-Website in der Rubrik Java-Tutorials!

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen dem dynamischen JDK-Proxy und CGLIB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn