Tomcat 如何加载不同的 war 文件?

How does Tomcat load the different war files?

Tomcat(或任何 Web 应用程序服务器)如​​何设法分别加载不同的 WAR 文件,尽管它在一个 JVM 进程中工作?他们可能拥有相同的类和其他资源,但它必须保证应用程序的一致性和隔离性。

Tomcat 为每个已部署的 WAR 创建(Web)应用程序 class 加载程序。它有一些常见的 class 加载程序。 class loader howto:

中对总体层次结构进行了最好的描述

http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html

顺便说一句:Tomcat 进行了大量的资源管理以允许应用程序被取消部署。此处对此进行了描述:

http://wiki.apache.org/tomcat/MemoryLeakProtection

并与 class 装载机和 class 卸载机紧密联系。