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
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.
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)
- 1. Ist es besser, in Datei oder Datenbank zu loggen?
- 2. Pygame: Ist es besser, ein Bild mehrmals zu laden oder eine Oberfläche im Speicher zu behalten?
- 3. Ist es besser, Bitmap oder EncoderedImage in BlackBerry zu verwenden?
- 4. ist es besser, shared_ptr.reset oder operator =?
- 5. Ist es performanter, Textfelder in einer MySql-Tabellenzeile oder in einer separaten Tabelle zu behalten und
- 6. Ist es besser zu verbinden mit OR in der Join-Bedingung oder zu verwenden mehrere JOINS
- 7. Ist es möglich, Code in eine Android-Anwendung zu injizieren?
- 8. Ist es besser, Liste oder Sammlung zu verwenden?
- 9. Ist es besser, von Bundle oder Festplatte zu laden?
- 10. Ist es besser, jQuery fadeIn oder CSS3 Animationen zu verwenden?
- 11. Ist es besser, gleich danach zu autorelease oder release?
- 12. in ExtJS, ist es besser, Model.save() oder Store.Sync() aufzurufen?
- 13. Ist es besser, tagName oder instanceofHTMLAnchorElement zu überprüfen
- 14. Ist es besser DateTime.MinValue oder eine Nullable DateTime zu verwenden?
- 15. Ist es besser, den Instanzvariablen in onCreate, onResume oder nur bei der Deklaration Standardwerte zu geben?
- 16. Ruby on Rails: Ist es besser, im Modell oder in der Datenbank zu validieren?
- 17. Ist es akzeptabel, Logik in Ansichtsvorlagen zu behalten?
- 18. Ist es besser, das Datenbankschema zu ändern?
- 19. in codeigniter Nicht vorhandene Klasse: Commonlib ist Bibliotheksdatei
- 20. Ist es möglich, nur Wertänderungen in Influxdb zu behalten?
- 21. Ist es besser, Paketname zu verwenden: symbol In Code Oder: use: Paketname In A DEFPACKAGE?
- 22. Ist es besser, redundante Informationen zu speichern oder Tabellen bei Bedarf in MySQL zu verknüpfen?
- 23. Ist es besser, Klassenkonstanten in Datenmembern oder in Methoden zu speichern?
- 24. PHP: Ist es besser, auf 1 oder mehreren Zeilen zu verketten? Oder gibt es einen Unterschied?
- 25. Unerwünschte JAR-Dateien in tomcat/lib oder WEB-INF/lib
- 26. ist es besser, dlls zu GAC zu registrieren oder sie aus dem Ordner bin in ASP.NET
- 27. In object.initialize ist es besser, self zu verwenden. Über @?
- 28. Ist es besser, Code in eine "IF" -Anweisung einzubinden, oder ist es besser, die Funktion "kurzzuschließen" und zurückzugeben?
- 29. Android - Beim Speichern eines Bildes ist es besser, es zu speichern oder temporär zu speichern.
- 30. iOS - Ist es besser, Getter/Setter-Methoden direkt oder Eigenschaften
+1 Nach meiner Erfahrung werden Sie in fiese Klassenlader Probleme auftreten, und Sie werden sie sehr schwer zu reproduzieren und zu diagnostizieren finden. –