tomcat的类加载机制
时间: 2023-11-04 07:57:44 浏览: 92
Tomcat的类加载机制是通过使用不同的类加载器来加载不同类型的类。其中,常见的类加载器包括Bootstrap ClassLoader、Common ClassLoader、WebApp ClassLoader和Shared ClassLoader。
Bootstrap ClassLoader是Java虚拟机的启动类加载器,负责加载Java虚拟机自身需要的类,如rt.jar中的类。
Common ClassLoader是Tomcat的公共类加载器,负责加载位于CATALINA_HOME/lib目录下的通用类,如servlet-api.jar。
WebApp ClassLoader是Tomcat的Web应用程序类加载器,它为每个Web应用程序创建一个唯一的类加载器。它负责加载位于应用程序的WEB-INF/classes目录和WEB-INF/lib目录下的类。
Shared ClassLoader是Tomcat的共享类加载器,负责加载在share.loader属性下配置的共享类,这些类对于Tomcat本身是不可见的。
通过使用不同的类加载器,Tomcat实现了灵活的类加载机制,可以根据不同的需求加载不同类型的类。
相关问题
tomcat类加载机制
Tomcat的类加载机制遵循Java Web应用程序规范,采用了双亲委派模型。在Tomcat启动时,它会创建三个类加载器,分别是BootstrapClassLoader,CommonClassLoader和WebappClassLoader。
BootstrapClassLoader是JVM内置的类加载器,用于加载Java核心类库,它是所有类加载器的根,由JVM负责加载。
CommonClassLoader位于Tomcat的公共类库目录下,用于加载Tomcat本身的类库,如servlet-api.jar。
WebappClassLoader用于加载Web应用程序的类库,每个Web应用程序都有一个自己的WebappClassLoader实例,它是CommonClassLoader的子类,能够加载Web应用程序中的类和资源文件。
当Web应用程序启动时,Tomcat会先加载CommonClassLoader中的类库,然后再加载WebappClassLoader中的类库。在加载类时,Tomcat会先将类加载请求委托给父类加载器,如果父类加载器无法找到该类,则会交由当前类加载器来加载。
这样的类加载机制保证了Tomcat的安全性和可靠性,同时也避免了类的重复加载和冲突。
阅读全文