tomcat类加载机制
时间: 2023-08-27 11:22:09 浏览: 51
Tomcat的类加载机制主要涉及到以下几个方面:
1. Bootstrap ClassLoader:这是Java虚拟机内置的类加载器,用于加载Java核心库,如java.lang包中的类。
2. System ClassLoader:又称为应用程序类加载器,用于加载应用程序classpath下的类。
3. Common ClassLoader:用于加载Tomcat公共类库中的类,如Tomcat的servlet-api.jar。
4. Webapp ClassLoader:用于加载Web应用程序中的类,如WEB-INF/classes下的类和WEB-INF/lib下的jar包中的类。
Tomcat在启动时会先由Bootstrap ClassLoader加载Tomcat自身的类库,然后由System ClassLoader加载Tomcat启动脚本中配置的classpath下的类,接着由Common ClassLoader加载Tomcat公共类库中的类,最后由Webapp ClassLoader加载Web应用程序中的类。
在加载Web应用程序中的类时,Tomcat会使用双亲委派机制,即先由Webapp ClassLoader尝试加载类,如果Webapp ClassLoader无法加载则委托给Common ClassLoader,如果Common ClassLoader仍无法加载则委托给System ClassLoader,最终如果System ClassLoader也无法加载则委托给Bootstrap ClassLoader。
这种双亲委派机制保证了类加载的顺序和一致性,避免了类的重复加载,也防止了恶意代码的注入。