Tomcat 确实打破了 JVM 标准的“双亲委派模型”(Parent Delegation Model),但这主要发生在 Web 应用程序(WebApp) 的类加载层面。 简单来说,Tomcat 这样做是为了解决 Web 容器特有的 隔离性(Isolation) 和 灵活性 问题。 以下是 Tomcat 打破双亲委派模型的四个核心原因: 1. 依赖版本隔离(最主要原因) 场景: 假设你在 Tomcat 中部署了两个 Web 应用: 应用 A 使用了 Spring 4.0。 应用 B 使用了 Spring 5.0。 如果遵循双亲委派: 类加载器会委托给父加载器加载 Spring jar 包。由于 JVM 中全限定名(包名+类名)相同的类只能被加载一次,那么先加载了 Spring 4,应用 B 就会报错;反之应用 A 会报错。 Tomcat 的做法: 每个 Web 应用都有自己独立的 。当加载类时,它优先在自己的 和 下寻找,找不到才委托给父加载器。这样,应用 A 和应用 B 就可以各自拥有独立的 Spring 版本,互不干扰。 2. 服务器自身与应用的隔离 场景: Tomcat ...