Tomcat类加载器的种类以及架构设计

2023-08-18 09:47:09 浏览数 (1)

常见的Tomcat类加载方式有以下几种:

  1. 共享类加载器(Common类加载器): 在Tomcat的公共类库目录(common目录)下放置的类,可以被所有Web应用程序共享使用。这些类会被Common类加载器加载并放置在JVM的Common类加载器对应的类加载器空间中。
  2. Web应用程序类加载器(Web应用类加载器): 每个Web应用程序在启动时都会创建一个Web应用程序类加载器,负责加载该Web应用程序的类。该类加载器在Web应用程序的WEB-INF/classes目录和WEB-INF/lib目录下查找类。
  3. 系统类加载器(System类加载器): 在Tomcat的全局公共类库目录(lib目录)下放置的类,可以被整个Tomcat容器共享使用。这些类会被System类加载器加载并放置在JVM的System类加载器对应的类加载器空间中。

Tomcat的类加载架构设计如下:

  • Tomcat的类加载架构采用了两级类加载器的设计。
  • 第一级是Catalina类加载器,它继承自JVM的Common类加载器(也可以配置为继承自JVM的System类加载器),负责加载Tomcat自身的类以及Web应用程序的共享类。
  • 第二级是Web应用程序类加载器,每个Web应用程序在启动时都会创建一个Web应用程序类加载器,负责加载该Web应用程序的类。它的父加载器是Catalina类加载器。
  • 这种两级类加载器的设计可以实现类加载的隔离性,不同Web应用程序之间的类互不干扰。同时也能够提高类加载的效率,避免了反复加载相同的类。

0 人点赞