tomcat的类加载架构

tomcat的类加载架构

PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]


主流的Java Web服务器,如Tomcat、Jetty、Weblogic、Websphere或其他服务器。在Tomcat 5.x以前,其结构目录中有3组目录(common、server、shared)可以存放Java类库,Tomcat 6.x以后三个目录合并为了lib目录。另外还可以加上Web应用程序自身的目录“WEB-INF”,一共4个目录,把Java类库放置在这些目录下的分别含义如下:

1.放置在common目录中:类库可被Tomcat和所有的Web应用程序共同使用
2.放置在server目录中:类库可被Tomcat使用,对所有的Web应用程序不可见
3.放置在shared目录中:类库可被所有的Web应用程序共同使用,但对Tomcat不可见
4.放置在WEB-INF目录中:仅被此Web应用程序使用。对Tomcat其他Web应用程序不可见

为了支持这套目录结构,并对目录里的类库进行加载和隔离,Tomcat自定义了多个类加载器,这些类加载器按照经典的双亲委派模型来实现。如图:
这里写图片描述
其中黑色虚线包括JVM默认的类加载器架构,而CommonClassLoaderCatalinaClassLoaderSharedClassLoaderWebappClassLoader则分别加载commonserversharedWEB-INF中的Java类库。每个Web应用程序对应一个WebApp类加载器每个JSP文件对应一个Jsp类加载器,而JasperLoader的加载范围仅仅是这个JSP文件所编译出来的那个Class他出现的目的就是为了被丢弃:当服务器监测到JSP文件被修改时,会替换掉目前的JasperLoader的实例,并通过再建立一个新的Jsp类加载器来实现文件的HotSwap功能绿色虚线表达的是:在Tomcat6.x以后已经common、server、shared目录合并到了lib目录下,在conf/catalina.properties配置文件的下可以配置启动CatalinaClassLoaderSharedClassLoader的使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值