在Tomcat内核中,类加载器(ClassLoader)起着至关重要的作用,特别是在支持多个Web应用程序时。Tomcat使用了一种叫做公共类加载器(Common Class Loader)和隔离类加载器(Isolated Class Loader)的机制来管理类加载器,以实现不同Web应用程序间类的隔离和共享。
-
公共类加载器:公共类加载器负责加载Tomcat自身和所有Web应用程序都能共享使用的类,如Java标准库中的类和Tomcat提供的一些共享库中的类。公共类加载器位于Tomcat的
lib
目录下,加载的类对所有的Web应用程序都可见。 -
隔离类加载器:隔离类加载器为每个Web应用程序创建一个独立的类加载器实例,用于加载Web应用程序私有的类。这样可以实现不同Web应用程序间的类隔离,避免类冲突和版本冲突。
在Tomcat中,类加载器的委派机制是优先从子类加载器开始查找类,如果找不到再委派给父类加载器。这样就保证了公共类加载器加载的类对所有Web应用程序都可见,而隔离类加载器加载的类只对当前Web应用程序可见,实现了类的隔离和共享。
总的来说,Tomcat内核中的公共类加载器和隔离类加载器机制保证了不同Web应用程序间类的隔离和共享,保证了系统的稳定性和安全性。