我将有多个webapps。所有的webapps都是基于java的,使用Spring / hibernate等。如果我把所有第三方jar放在每个war文件中(对应于每个webapp);会有巨大的内存占用!
当第三方jar(如spring / hibernate)在所有webapps中都很常见时;什么是最小的内存使用方式?我能想到的一个选择是将这些第三方jar放在Tomcat / lib中,以便它们可以在多个webapps之间共享。
还有其他更好的方法吗?
答案 0 :(得分:3)
听起来我觉得你的内存(RAM)与磁盘存储混淆。
如果您希望尽可能减少磁盘空间的使用,那么您可以将jar文件放在共享位置 - 请参阅http://tomcat.apache.org/tomcat-7.0-doc/appdev/deployment.html#Shared_Library_Files
上的文档这对内存使用没有任何作用 - 每个应用程序将在其自己的类加载器下加载它所需的类。
答案 1 :(得分:0)
是的,Tomcat的Common类加载器只会在Tomcat的公共库中加载这些jar一次,因为所有的webapp都共享相同的公共类加载器。但是由于各种问题,一些罐子不起作用。所以你必须尝试。