2010-09-01 5 views
1

Quelles sont les meilleures pratiques pour le déploiement d'applications basées sur Spring? J'ai au moins deux applications basées sur Spring. Je les déploie sur Tomcat - deux instances du même serveur avec différentes CATALINA_BASE. Le résultat est que la taille de l'une de mes applications est de 30 Mo et l'autre de 19 Mo. Chacun a les mêmes bibliothèques telles que Spring, Apache CXF, Hibernate, C3P0, etc.Comment déployer correctement l'application Spring sur Tomcat?

Est-il correct et sûr (stable) de garder ces librairies dupliquées dans chaque application et de télécharger 30 Mo chaque déploiement? Ou peut-être que je devrais copier des bibliothèques communes quelque part?

Répondre

4

Je recommande les gardiens tels quels. Vous pouvez mettre une partie des bibliothèques partagées dans le répertoire lib de Tomcat, mais cela ne va que compliquer la mise à niveau à l'avenir, par exemple, Lorsque vous souhaitez mettre à niveau une bibliothèque, vous devez mettre à niveau les deux applications en même temps. Tomcat attribue à chaque WAR son propre classloader et les isole les uns des autres. Avoir le même JAR dans deux WAR différents ne posera pas de problème.

0

Si vous chargez beaucoup de classes dans chaque guerre, vous risquez de manquer d'espace PermGen. Si vous partagez les fichiers jars via le répertoire lib de tomcat, vous devrez peut-être charger moins de classes car le classloader commun ne chargera la classe qu'une seule fois pour toutes les applications. Si vous avez le même pot dans chaque application, le chargeur de classe associé à chaque application peut potentiellement charger les mêmes classes qui peuvent multiplier le nombre total de classes chargées. Cependant, pour les bocaux que vous avez notés, votre meilleur pari serait probablement de les inclure dans les guerres. Vous voudrez probablement utiliser différentes versions de chaque technologie dans différentes guerres par la suite. L'espace PermGen peut toujours être augmenté avec un argument Java s'il devient un problème.

+0

Je prévois de redémarrer Tomcat après chaque dépoly pour éviter les problèmes d'espace PermGen. Peut-être que je garderai les pilotes JDBC dans les bibliothèques Tomcat. –

Questions connexes