2009-07-04 3 views
2

Ich mache einige Spring-Entwicklung und ich versuche zu entscheiden, ob Bibliotheken immer in der Application-Bibliothek gehalten werden sollten, auch wenn sie für mehr als eine App üblich sind. Verlangsamt sich der Start von Tomcat nicht, wenn ein paar JAR-Dateien im common/lib landen? Ich habe auch Angst vor Versionen und Abhängigkeiten. Ist das nicht weniger problematisch, wenn die Anwendung ihre eigene Kopie von allem beibehält? Gibt es Fälle, in denen Tomcat unbedingt eine Bibliothek benötigt, um gemeinsam/lib zu sein, weil das Jar spezifisch für die Funktionalität des Containers ist und nicht wirklich die Anwendung?Ist es besser, Bibliotheken in der Anwendung lib oder in common/lib zu behalten?

Antwort

5

Es wäre denn, es sehr guter Grund, sie gemeinsam zu machen, dann Bewahren Sie einzelne Kopien für jede Anwendung auf.

Sie können sehr böse Klassenloader-Probleme auftreten, wenn Sie sie häufig machen.

+1

+1 Nach meiner Erfahrung werden Sie in fiese Klassenlader Probleme auftreten, und Sie werden sie sehr schwer zu reproduzieren und zu diagnostizieren finden. –

3

Ich tendiere dazu, Bibliotheken für die Anwendung gemeinsam zu halten, und nicht geteilt werden.

Wenn Sie mehr als eine Anwendung verwenden, die diese Bibliotheken verwendet, und Sie eine Bibliothek aktualisieren müssen (für eine Funktion oder eine Fehlerbehebung), müssen Sie alle erneut testen (vielleicht sogar neu kompilieren/bereitstellen) diese Anwendungen.

Wenn Sie Bibliotheken mit den Anwendungen verwalten, können Sie nicht alle Apps testen, wenn Sie nur diese ändern müssen. Jede Anwendung ist effektiv Sandboxed.

(Sie für die Geschwindigkeit der Entwicklung können feststellen, dass es die gemeinsame Bibliotheken in Ihrer Entwicklungsumgebung teilen hilft. Doch dass aus dem endgültigen Einsatzszenario verschieden sind)

Verwandte Themen