Tomcat类加载机制
https://www.cnblogs.com/ghoster/p/7602158.html https://www.cnblogs.com/dw-haung/p/10103844.html https://www.jianshu.com/p/a18aecaecc89 .主流的Java Web服务器,如Tomcat、Jetty、WebLogic、WebSphere等都实现了自己定义的类加载器(一般都不止一个)。因为一个功能健全的web服务器要解决一下几个问题: 1)部署在一个服务器上的两个web应用程序所使用的Java类库可以实现互相隔离 。这是最基本的需求,两个不同的应用程序可能会依赖同一个第三方类库的不同版本,不能要求一个类库在一个服务器中只有一份,服务器应当保证两个应用程序的类库可以互相独立使用 2)部署在同一个服务器上的两个Web应用程序所使用的Java类库可以互相共享。 这个需求也非常很常见,如,用户可能有10各使用Spring组织的应用程序部署在同一台服务器上,如果把10份Spring分别存放在各个应用程序的隔离目录中,将会是很大的资源浪费-这主要不是浪费磁盘空间的问题,而是指类库在使用时都要被加载到服务器内存,如果类库不能共享,虚拟机的方法区就会很容易出现过度膨胀的风险 3)服务器需要尽可能地保证自身的安全不受部署的Web应用程序影响。