脚本宝典收集整理的这篇文章主要介绍了Tomcat类加载架构,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
主流的Java web服务器,都实现了自己定义的类加载器,而且一般都还不止一个。因为一个功能健全的web服务器,都要解决如下的问题:
在tomcat目录结构中,可以设置3组目录(/common/*,server/*和shared/*,但默认不一定是开放的)用于存放Java类库,另外还应该加上web应用程序自身的“WEB-INF/*”目录,一共4组。
这四组,分别存放:
在上图中,common类加载器、Catalina类加载器(也称为serve类加载器),shared类加载器和WebApp类加载器是tomcat自己定义的类加载。
WebApp类加载器和Jsp类加载器通常还会存在多个实例,每一个web应用程序对应一个webApp类加载器,每一个jsp文件对应一个jsperLoader类加载器。
Common类加载器能加载的类可以被Catalina类加载器和shared类加载器是使用,而Catalina类加载器和shared类加载器自己能加载的类则与对方隔离。WebApp类加载器可以使用Shared类加载器加载到的类,但各个webapp类加载器实例之间是隔离的。jsperLoader的加载范围仅仅是这个Jsp文件所编译出来的一个class文件,它存在的目的就是为了被丢弃。
上图的类加载结构在tomcat6以前是默认的类加载器结构,在tomcat6机以后的简化了默认的目录结构,只有指定了tomcat/conf/catalina.properties配置文件的server.loader和share.loader项后,才会真正建立Catalina类加载器和shared类加载器实例。/common、server、shared3个目录默认合并到一个/lib目录。
以上是脚本宝典为你收集整理的Tomcat类加载架构全部内容,希望文章能够帮你解决Tomcat类加载架构所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。