博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tomcat类加载机制
阅读量:6473 次
发布时间:2019-06-23

本文共 986 字,大约阅读时间需要 3 分钟。

1.1            tomcat类加载机制

1.1.1    概览

Bootstrap
          |
          System
          |
          Common
       /     \
        Webapp1   Webapp2 ...

备注:这里的加载模型和jvm的三层classloader有区别。总体思想类似。

1.1.2    各层加载器

1.1.2.1         Bootstrap

此类加载器包含Java虚拟机提供的基本运行时类。

加载java/jre/lib 和 java/jre/lib/ext.  相当于jvm的bootstrap和extensions class loader。

1.1.2.2             System

此类加载器通常从CLASSPATH环境变量的内容初始化。Tomcat内部类和Web应用程序都可以看到所有这些类。

加载下面路径的jar包

  • $CATALINA_BASE/bin
  •  $CATALINA_HOME/bin

1.1.2.3             Common

此类加载器包含对Tomcat内部类和所有Web应用程序都可见的其他类。

加载下面路径的jar包

  • $CATALINA_BASE/lib
  •  $CATALINA_HOME/lib

1.1.2.4             WebAppX

为部署在单个Tomcat实例中的每个Web应用程序创建一个类加载器。/WEB-INF/classesWeb应用程序目录中的所有解压缩的类和资源,以及Web应用程序/WEB-INF/lib目录下的JAR文件中的类和资源,都对此Web应用程序可见,但对其他应用程序不可见。

Web应用程序类加载器与默认Java委托模型不同。当从web应用的(webappX类加载器)加载class的请求被处理时,这个类加载器会首先尝试从本地资源自己加载这个类,而不是先委托给父类加载器。

因此,从Web应用程序的角度来看,类或资源加载按以下顺序查找以下存储库:

  • JVM的Bootstrap类
  • 您的Web应用程序的 / WEB-INF /classes
  • 您的Web应用程序的 /WEB-INF/lib/*.jar
  • 系统类加载器类(如上所述 System)
  • 常见的类加载器类(如上所述,Common)

转载于:https://www.cnblogs.com/gc65/p/10170796.html

你可能感兴趣的文章
再次更新
查看>>
mysql的数据类型int、bigint、smallint 和 tinyint取值范围
查看>>
利用Windows自带的Certutil查看文件MD5
查看>>
查询指定名称的文件
查看>>
AJAX POST&跨域 解决方案 - CORS
查看>>
开篇,博客的申请理由
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
centos 7 部署LDAP服务
查看>>
iOS项目分层
查看>>
IntelliJ IDEA 注册码
查看>>
String字符串的截取
查看>>
DynamoDB Local for Desktop Development
查看>>
Shell编程-环境变量配置文件
查看>>
Struts2和Spring MVC的区别
查看>>
理解Javascript参数中的arguments对象
查看>>
<<The C Programming Language>>讀書筆記
查看>>
git代码冲突
查看>>
解析查询 queryString 请求参数的函数
查看>>
git bash 风格调整
查看>>
linux操作系统加固软件,系统安全:教你Linux操作系统的安全加固
查看>>