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

Eine kurze Analyse der Verwendung der Zero-Copy-Technologie in Linux

In diesem Artikel werden mehrere wichtige Zero-Co...

CentOS7-Bereitstellung Flask (Apache, mod_wsgi, Python36, venv)

1. Installieren Sie Apache # yum install -y httpd...

Document Object Model (DOM) in JavaScript

Inhaltsverzeichnis 1. Was ist DOM 2. Elemente aus...

So lösen Sie das Problem ERROR 2003 (HY000) beim Starten von MySQL

1. Problembeschreibung Beim Starten von MySQL tri...

5 einfache Möglichkeiten, Speicherplatz auf Ubuntu freizugeben

Vorwort Die meisten Benutzer führen diesen Vorgan...

Wird CSS3 SCSS wirklich ersetzen?

Beim Styling unserer Webseiten haben wir die Wahl...

Interpretation von syslogd- und syslog.conf-Dateien unter Linux

1: Einführung in syslog.conf Für verschiedene Uni...

Details zum TypeScript-Mapping-Typ

Inhaltsverzeichnis 1. Zugeordnete Typen 2. Mappin...

Details zum Überschreiben von Prototypmethoden in JavaScript-Instanzobjekten

Inhaltsverzeichnis In JavaScript können wir norma...

Implementierungscode für die HTML-Tabellenrahmensteuerung

Wenn wir eine Tabelle verwenden, weisen wir ihr i...

So schreiben Sie Objekte und Parameter, um Flash in Firefox abzuspielen

Code kopieren Der Code lautet wie folgt: <Obje...