Verwenden Sie Tomcat, um die gemeinsam genutzte Bibliothek so einzurichten, dass sie dasselbe JAR teilt.

Verwenden Sie Tomcat, um die gemeinsam genutzte Bibliothek so einzurichten, dass sie dasselbe JAR teilt.

Da immer mehr Projekte bereitgestellt werden, werden immer mehr Release-Pakete in Tomcat bereitgestellt. Auf diese Weise ist es unvermeidlich, dass viele identische JARs geladen werden, die einen großen Teil des permanenten Speicherbereichs belegen. Durch Festlegen der gemeinsam genutzten Bibliothek wird nur ein identisches JAR geladen.

Dies hat folgende Vorteile:

1. Vermeiden Sie das Laden desselben Jars in verschiedene Projekte, um den Speicherverbrauch des permanenten Speicherbereichs zu verringern

2. Verbessern Sie die Startgeschwindigkeit von Tomcat, da weniger doppelte Jars geladen werden

1. So richten Sie eine gemeinsam genutzte Bibliothek ein

Methode 1:

Ändern Sie die Datei catalina.properties unter der conf-Datei und konfigurieren Sie den Pfad von shared.loader:

Konfigurieren Sie den absoluten Pfad:

shared.loader="D:hs/entwickeln/shared/lib","D:/hs/entwickeln/shared/lib/*.jar"

Platzieren Sie anschließend dasselbe JAR im angegebenen Ordner.

Oder konfigurieren Sie den relativen Pfad:

shared.loader="${catalina.base}/shared/lib","${catalina.base}/shared/lib/*.jar"

Erstellen Sie dann ein neues freigegebenes Verzeichnis im selben Verzeichnis wie conf und legen Sie das gleiche JAR in lib ab

Methode 2:

Ändern Sie die Datei catalina.properties unter der conf-Datei, konfigurieren Sie den Pfad von common.loader und hängen Sie den Pfad der gemeinsam genutzten Bibliothek an:

common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/lib/shared/*.jar"

Erstellen Sie dann ein freigegebenes Verzeichnis im Lib-Ordner und legen Sie dieselbe JAR-Datei in das freigegebene Verzeichnis

2. Der Unterschied zwischen catalina.home und catalina.base

Unter einem Tomcat verweisen catalina.home und catalina.base auf denselben Speicherort, der das übergeordnete Verzeichnis von bin und anderen Verzeichnissen ist.

Wenn Sie mehrere Tomcat-Instanzen installieren möchten, aber nicht mehrere Software-Backups installieren möchten, können Sie diese beiden Eigenschaften verwenden. Im Tomcat-Verzeichnis werden nur die Verzeichnisse „bin“ und „lib“ von mehreren Tomcat-Instanzen gemeinsam genutzt. Andere Verzeichnisse wie „conf“, „logs“, „temp“, „webapps“ und „work“ sind unabhängige Backups jeder Tomcat-Instanz.

Sie verweisen derzeit auf unterschiedliche Standorte:

catalina.home (Installationsverzeichnis): verweist auf den Speicherort der öffentlichen Informationen, das übergeordnete Verzeichnis von bin und lib.

catalina.base (Arbeitsverzeichnis): verweist auf den Speicherort der privaten Informationen jedes Tomcat-Verzeichnisses, also das übergeordnete Verzeichnis von „conf“, „logs“, „temp“, „webapps“ und „work“.

3. Tomcat6-Klassenlademechanismus

Commonclassloader :

Verantwortlich für das Laden aller Klassen und JAR-Pakete im Verzeichnis $CATALINA_HOME/common. Eine detaillierte Konfiguration finden Sie in der common.loader-Konfiguration in der Datei $CATALINA_HOME/conf/catalina.properties. Die von diesem Klassenlader geladenen Klassen sind für den Server-Klassenlader und den Webapp-Klassenlader sichtbar. Der Commonclass-Lader wird beim Start von Tomcat erstellt und sein übergeordneter Klassenlader ist der System-Klassenlader.

Server classloader :

Verantwortlich für das Laden der Kernklassen von Tomcat, aller Klassen und JARs im Verzeichnis $CATALINE_HOME/server, das durch die Konfiguration server.loader in catalina.propreties angegeben werden kann; es wird beim Start von Tomcat erstellt und sein übergeordneter Loader ist der Commonclass Loader;

Sharedclass loader :

Verantwortlich für das Laden allgemeiner Klassen von Webanwendungen, die vom Benutzer über die Eigenschaft shared.loader in der Datei catalina.properties angegeben werden können. Sie wird beim Start von Tomcat erstellt und ihr übergeordneter Loader ist auch der allgemeine Klassenlader.

Webappclassloader :

Es ist nur für das Laden von Klassen unter WEB-INF/classes und WEB-INF/lib in jeder App verantwortlich. Obwohl sein übergeordneter Lader ein gemeinsam genutzter Klassenlader ist, unterscheidet sich seine Ladestrategie vom Standardlademechanismus für Klassen.

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Lösung für die hohe CPU-Auslastung des Tomcat-Prozesses
  • SpringBoot startet eingebettete Tomcat-Implementierungsschritte
  • Tomcat unterbricht den übergeordneten Delegierungsmechanismus, um eine Isolierung von Webanwendungen zu erreichen
  • Eine kurze Erläuterung, wie Tomcat den übergeordneten Delegationsmechanismus unterbricht
  • Fünfzehn Tomcat-Interviewfragen, eine seltene Gelegenheit!

<<:  So leiten Sie innerhalb von zwei Sekunden auf andere Seiten einer HTML-Seite um

>>:  Detaillierte Erklärung der Props-Konfiguration von Vue

Artikel empfehlen

So aktualisieren Sie v-for in Vue

Tipps: Die Methode zur Array-Änderung führt zur A...

So erstellen Sie einen K8S-Cluster und installieren Docker unter Hyper-V

Wenn Sie das Win10-System installiert haben und e...

Lernen Sie die MySQL-Zeichensatzeinstellungen in 5 Minuten kennen

Inhaltsverzeichnis 1. Inhaltsübersicht 2. Konzept...

So verstehen und identifizieren Sie Dateitypen in Linux

Vorwort Wie wir alle wissen, ist in Linux alles e...

Tutorial zur HTML-Tabellenauszeichnung (9): Zellabstandsattribut CELLSPACING

Damit die Tabelle nicht zu kompakt wirkt, kann zw...

Implementierung des CSS-Animationseffekts für dynamische Höhenübergänge

Diese Frage stammt aus einer Nachricht auf Nugget...

Detaillierte Erläuterung des Beispiels der Caching-Methode von Vue

Kürzlich wurde die neue Anforderung „Front-End-Ca...

Vue+SSH-Framework zur Realisierung von Online-Chat

In diesem Artikel wird der spezifische Code des V...

Zusammenfassung häufiger Probleme und Lösungen in Vue (empfohlen)

Es gibt einige Probleme, die nicht auf Vue beschr...

VMware ESXi 5.5 Bereitstellungs- und Konfigurationsdiagrammprozess

Inhaltsverzeichnis 1. Installationsvoraussetzunge...

Eine kurze Analyse des Funktionsaufrufprozesses unter der ARM-Architektur

Inhaltsverzeichnis 1. Hintergrundwissen 1. Einfüh...