Heim häufiges Problem Was ist der Unterschied zwischen cglib-Proxy und dynamischem JDK-Proxy?

Was ist der Unterschied zwischen cglib-Proxy und dynamischem JDK-Proxy?

Jun 12, 2023 am 10:36 AM
jdk cglib

Der Unterschied zwischen cglib-Proxy und dynamischem JDK-Proxy besteht darin, dass der dynamische JDK-Proxy Proxy-Instanzen des Proxy-Objekts basierend auf Schnittstellen erstellt, während Cglib-Proxy Unterklassen der Proxy-Klasse basierend auf Vererbung generiert.

Was ist der Unterschied zwischen cglib-Proxy und dynamischem JDK-Proxy?

Das Betriebssystem dieses Tutorials: Windows 10-System, JDK15-Version, Dell G3-Computer.

Dynamischer JDK-Proxy und Cglib-Proxy sind beide Implementierungsmethoden von Proxys in der Java-Sprache. Es gibt bestimmte Unterschiede zwischen den beiden in Bezug auf Verwendung, Leistung und anwendbare Szenarien:

屏幕截图 2023-06-12 103510.png

    Erstellen Sie eine Proxy-Instanz des Proxy-Objekts basierend auf der Schnittstelle. Wenn ein Objekt als Proxy verwendet werden soll, muss es eine oder mehrere Schnittstellen implementieren und auf die JDK-Bibliothek angewiesen sein. Der dynamische JDK-Proxy verwendet den Reflexionsmechanismus, um eine Proxy-Klasse zu generieren, die alle Schnittstellen des Proxy-Objekts enthält und alle Methoden in der Schnittstelle abdeckt, die das Zielobjekt vertreten können.
  • Vorteile: Es ist nicht erforderlich, auf Bibliotheken von Drittanbietern zu verweisen, es kann in der JRE-Laufzeitumgebung ausgeführt werden und die Generierung von Proxy-Objekten ist einfacher und schneller. Nachteile: Es unterstützt nur Proxying basierend auf Schnittstellen und kann daher keine Proxy-Klassen verwenden seine Rolle ist begrenzt.
  • 2., Cglib-Proxy:

屏幕截图 2023-06-12 103555.png

    Erzeugen Sie Unterklassen der Proxy-Klasse basierend auf Vererbung, um Proxy-Logik hinzuzufügen. Da es die Proxy-Klasse erbt, wird es von nicht vererbbaren Attributen wie endgültigen Klassen, privat und statisch beeinflusst.
  • Vorteile: Cglib unterstützt Proxy-Klassen. Auch wenn keine Schnittstelle vorhanden ist, kann dies indirekt durch Festlegen einer Rückrufschnittstelle erreicht werden. Die Leistung ist höher als beim dynamischen JDK-Proxy und er kann Zielobjekte weiterleiten, die keine Schnittstelle implementieren.
  • Cglib verwendet die Methode der dynamischen Generierung von Bytecode beim Generieren von Proxy-Klassen. Die Proxy-Klasse wird im Speicher erstellt und zwischengespeichert, bevor sie von der Proxy-Klasse geladen wird Zukunft. Zwischengespeicherte Proxy-Klasse. In den meisten Fällen eignen sich Cglib-Proxys besser für groß angelegte Szenarien zum Abfangen und Verbessern von Methoden als dynamische JDK-Proxys.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen cglib-Proxy und dynamischem JDK-Proxy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So installieren Sie Java unter Windows 11 So installieren Sie Java unter Windows 11 Apr 13, 2023 pm 09:22 PM

Trotz der großen Anzahl von Anwendungen, die hin und wieder auftauchen, bleibt Java mit Abstand eine der am häufigsten verwendeten und wichtigsten Programmiersprachen. Viele Anwendungen hängen von Java auf Windows-Betriebssystemen ab, und die Aktualisierung bedeutet eine Verbesserung der Leistung durch Gewährleistung von Stabilität und Sicherheit für die sichere Ausführung von Java-Anwendungen. Sie können Java auch auf Linux- und macOS-Plattformen installieren. Der einzige Unterschied besteht im Paket/der Datei für jede Plattform. Jetzt, mit Windows 11, ist es an der Zeit, Java herunterzuladen. Im heutigen Artikel führen wir Sie durch die einfachen Schritte, um es auf Ihrem Gerät zu installieren. Welche Java-Version soll ich herunterladen? Die Java-Version, die Sie heruntergeladen haben

Analyse von Beispielen für dynamische JDK-Proxys in Java Analyse von Beispielen für dynamische JDK-Proxys in Java Apr 30, 2023 pm 01:16 PM

1. Erklären Sie, dass Java eine dynamische Proxy-Klasse bereitstellt. Proxy ist nicht die Klasse dessen, was wir Proxy-Objekte nennen, sondern eine statische Methode (newProxyInstance) zum Erstellen eines Proxy-Objekts, um das Proxy-Objekt zu erhalten. 2. Instanz publicclassHelloWorld{publicstaticvoidmain(String[]args){//Rufen Sie das Proxy-Objekt ab ProxyFactoryfactory=newProxyFactory();SellTicketsproxyObject=factory.getProxyObject();proxyO

Benötigt die Oracle-Datenbank JDK? Benötigt die Oracle-Datenbank JDK? Jun 05, 2023 pm 05:06 PM

Die Oracle-Datenbank erfordert JDK. Die Gründe sind: 1. Bei Verwendung bestimmter Software oder Funktionen ist andere im JDK enthaltene Software oder Bibliotheken erforderlich. 3. JDK Bietet Funktionen zum Entwickeln und Kompilieren von Java-Anwendungen. 4. Erfüllen Sie die Anforderungen von Oracle für Java-Funktionen, um bei der Implementierung und Implementierung spezifischer Funktionen zu helfen.

JDK-Tutorial zur Deepin Linux-Systeminstallation JDK-Tutorial zur Deepin Linux-Systeminstallation Feb 15, 2024 pm 12:36 PM

Das Deepin-Linux-System ist ein inländisches Betriebssystem, das auf dem Linux-Kernel basiert. Es zeichnet sich durch Stabilität, Sicherheit und Benutzerfreundlichkeit aus. Im Deepin-Linux-System ist die Installation von JDK (Java Development Kit) ein notwendiger Schritt für die Entwicklung von Java-Anwendungen In diesem Artikel wird ausführlich beschrieben, wie JDK im Deepin-Linux-System installiert wird. Installationsschritte: Öffnen Sie das Terminal des Deepin Linux-Systems. Verwenden Sie die Befehlszeile, um das JDK-Installationspaket herunterzuladen. Der Befehl lautet wie folgt: „shellsudoapt-getinstallopenjdk-11-jdk“ Warten Sie, bis der Download abgeschlossen ist und das System das JDK automatisch installiert. Um zu überprüfen, ob das JDK erfolgreich installiert wurde, geben Sie den folgenden Befehl ein: „javaj

Wo ist das Linux-JDK-Verzeichnis? Wo ist das Linux-JDK-Verzeichnis? Mar 22, 2023 am 09:52 AM

Das Linux-JDK-Verzeichnis befindet sich im Bin-Verzeichnis. Die spezifische Suchmethode lautet: 1. Suchen Sie das Ausführungsverzeichnis von Javad über den Befehl „whereis java“. 3. Suchen Sie über die Ausführungsdatei /etc/alternatives/java“ Führen Sie einfach den Befehl aus, um das Installationsverzeichnis zu finden.

So installieren Sie das JDK-JDK-Installations-Tutorial So installieren Sie das JDK-JDK-Installations-Tutorial Mar 04, 2024 pm 05:10 PM

Kürzlich haben mich viele Freunde gefragt, wie man JDK installiert. Lassen Sie uns als Nächstes alles darüber lernen, wie man JDK installiert. 1. Laden Sie zunächst die JDK-Installationsdatei herunter und rufen Sie die JDK-Installationsschnittstelle auf, wie in der Abbildung gezeigt. 2. Klicken Sie auf die Schaltfläche „Weiter“, um die benutzerdefinierte JDK-Installationsschnittstelle aufzurufen, wie in der Abbildung gezeigt. 3. Es wird empfohlen, die Installation direkt im Standardverzeichnis auszuwählen und zum Installieren auf die Schaltfläche „Weiter“ zu klicken, wie in der Abbildung gezeigt. Sie können das Installationsverzeichnis auch selbst auswählen, indem Sie auf die Schaltfläche „Ändern“ klicken. 4. Nach Abschluss der Installation wird die Benutzeroberfläche angezeigt und Sie können auf die Schaltfläche „Schließen“ klicken, wie in der Abbildung dargestellt. Das Obige enthält alle vom Editor bereitgestellten Tutorials zur Installation von JDK. Ich hoffe, dass sie für alle hilfreich sein können.

So konfigurieren Sie die JDK-Umgebung im Linux-System So konfigurieren Sie die JDK-Umgebung im Linux-System May 12, 2023 am 09:31 AM

Die folgenden Schritte dienen zum Bereitstellen der JDK-Umgebung im Linux-System: 1. Laden Sie das JDK-Installationspaket herunter. 2. Erstellen Sie einen neuen Installations-JDK-Ordner (/usr/local/java/jdk) im Verzeichnis cd /usr/localmkdir/usr/local/javalocal und erstellen Sie ein neues Java-Verzeichnis cd /usr/local/javamkdir/usr/local/java/jdk. Erstellen Sie ein neues JDK-Verzeichnis cd/usr/local/java/jdk3. Laden Sie das JDK-Installationspaket hoch. Dekomprimierungsformat: Der Name nach dem Namen des komprimierten tarzxvf-Pakets kann einfach sein. Geben Sie einfach einen Anfangsbuchstaben ein und verwenden Sie die Tabulatortaste

So verwenden Sie den Cglib-Proxy in Java So verwenden Sie den Cglib-Proxy in Java Apr 30, 2023 pm 06:04 PM

Hinweis 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 publicclassTVProxyCglibimplementsM