2010-09-01 66 views
1

基於Spring的應用程序部署的最佳實踐是什麼? 我至少有兩個基於Spring的應用程序。我將它們部署在Tomcat上 - 具有不同CATALINA_BASE的相同服務器的兩個實例。如何在Tomcat上正確部署基於Spring的應用程序?

結果是我的一個應用程序的大小是30MB,另一個是19MB。每個庫都有相同的庫,比如Spring,Apache CXF,Hibernate,C3P0等。

是否正確和安全(穩定)將這些庫複製到每個應用程序中並上傳每個30MB的部署?或者,也許我應該複製共同庫somhere?

回答

4

我建議保持原樣。

可能將一些共享庫放到Tomcat的lib目錄中,但是這隻會使未來升級變得困難,例如,當你想升級一個庫時,你需要同時升級這兩個應用程序。

Tomcat給每個WAR自己的類加載器,並保持它們彼此隔離。在兩個不同的WAR中使用相同的JAR不會導致問題。

0

如果你在每場戰爭中加載很多類,最終可能會用盡PermGen空間。如果您通過tomcat的lib目錄共享jar文件,則可能需要加載較少的類,因爲常見的類加載器只會爲所有應用程序加載一次類。如果每個應用中都有相同的jar,那麼與每個應用相關聯的classloader就可能會加載相同的類,這些類可以使您加載的類的總數倍增。

但是,對於您注意到的罐子,您最好的選擇可能是將它們包含在戰爭中。最終你可能會想在不同的戰爭中使用不同版本的每種技術。如果它成爲一個問題,PermGen空間總是可以用java參數增加。

+0

我打算在每次depoly後重新啓動Tomcat以避免PermGen空間問題。 也許我會在JDBC Tomcat中保留JDBC驅動程序。 – 2010-09-03 08:36:48

相關問題