看完了Java类装载器,我们再来看看应用服务器(Tomcat)对类加载器的使用,每个应用服务器都有一套自己的类加载器体系,从而与Java的类加载器区别开以达到自己与应用程序隔离的目的.Tomcat的类加载器体系为:Bootstrap--->System--->Common---->Catalina,SharedShared------>Webapp1,Webapp2 .....

下面是对每个类加载器的定义:

1.Bootstrap 加载器在这里是Java里的Bootstrap和ExtClassLoader的总称,负责加载Java核心包的类, 和<Java_Home>/jre/lib/ext目录下的类.通常我们开发人员并不关心.我想只要是java程序这些肯定是必要的

2.System 就是系统加载器,一般是AppClassLoader,负责加载ClassPath环境变量设置目录下的值,这个我们开发人员会非常关注,但是在 Tomcat里面,虽然用AppClassLoader类加载器,但我们设置的ClassPath对它没有影响(如果有影响,那就麻烦了,将会导致 Tomcat运行不稳定),为什么呢,因为tomcat每次启动的时候都会在命令行窗口中都会重新设置Classpath值 为:<catalina_Home>/bin/bootstrap.jar和<java_Home>/lib /tools.jar,所以这里面的类一般对应用程序不可见的.除非你设置了

3.Common类加载器负责加载TomcatHOME/common/class下的.Class文件和common/lib中的jar包,这些类可以被Tomcat内核和每个Web应用程序都可以看见,一般放公用的一些重要的类,如servlet.jar等

4.Catalina类加载器从server/classes和server/lib下加载类,Catalina加载的类只对Tomcat服务器内核可见,对Web应用程序不可见,对于运行Tomcat内核的线程,它的上下文类加载器就是Catalina类加载器

5.Shared类加载器负责从share/classes和share/lib中加载类,它加载的类只对所有Web应用程序有效,对Tomcat不可见.

6.WebappX类加载器负责加载Web应用程序的/web-INF/classes和lib目录下的类,只对当前Web应用程序有效,对其他Web应用程序无效,对于运行每个Web应用程序的线程,他们的上下文类加载器就是它们各自的WebappX类加载器总结:从以上6点可以看出Tomcat提供了完整的类加载器体系,并且分工非常的明确,因而非常访问我们进行Web应用程序的设置和部署.

转载于:https://www.cnblogs.com/kabi/p/5199021.html

Tomcat的类加载器相关推荐

  1. Tomcat类加载器为何违背双亲委派模型

    本文来说下Tomcat类加载器为何违背双亲委派模型 文章目录 什么是类加载机制 什么是双亲委派模型 如何破坏双亲委任模型 Tomcat的类加载器是怎么设计的 本文小结 什么是类加载机制 代码编译的结果 ...

  2. 类加载机制:双亲委任模型和tomcat类加载器

    简介 类是如何加载的,那么必须要面对的几个问题如下 什么是类加载机制? 什么是双亲委任模型? 如何破坏双亲委任模型? Tomcat 的类加载器是怎么设计的? 类加载机制 Java 中的类加载器大致可以 ...

  3. java中类加载机制、类加载过程和类加载器层次

    1.类加载机制 jvm把class文件加载到内存,并对数据进行校验.解析和初始化,最终形成jvm可以直接使用的java类型的过程. (1)加载 将class文件字节码内容加载到内存中,并将这些静态数据 ...

  4. Tomcat 的类加载机制

    在前面 Java虚拟机:对象创建过程与类加载机制.双亲委派模型 文章中,我们介绍了 JVM 的类加载机制以及双亲委派模型,双亲委派模型的类加载过程主要分为以下几个步骤: (1)初始化 ClassLoa ...

  5. 十八、泛型 l 注解 l Servlet3.0 l 动态代理 l 类加载器基础加强

    l 泛型 l 注解 l Servlet3.0 l 动态代理 l 类加载器 泛型 1 回顾泛型类 泛型类:具有一个或多个泛型变量的类被称之为泛型类. public class A<T> { ...

  6. 深入拆解类加载器,这样的姿势你还不懂吗?

    来源:Java爱好者社区 本文导读: 1.前奏,举个生活中的小栗子 2.为何Java类型加载.连接在程序运行期完成? 3.一个类在什么情况下才会被加载到JVM中? 什么是主动使用.被动使用?代码示例助 ...

  7. java 类加载 双亲委派_java类加载器和双亲委派模型

    一. 类加载器 ClassLoader即常说的类加载器,其功能是用于从Class文件加载所需的类,主要场景用于热部署.代码热替换等场景. 系统提供3种的类加载器:Bootstrap ClassLoad ...

  8. 由源码深入Java类加载器(双亲委派模型)

    JVM类加载器 JVM主要有以下几种类加载器: 引导类加载器 主要加载JVM运行核心类库,位于JRE的lib目录下,如rt.jar中的类. 扩展类加载器 主要加载JVM中扩展类,位于JRE的ext目录 ...

  9. java疫苗之殇?关于java类加载器的一些思考

    近日疫苗之殇闹得沸沸扬扬,究其原因是因为长春长生生物公司随意改动制药工艺,不管注射了这种疫苗会不会对身体有太大的影响,但是这严重影响了国民对医药的信任,可能导致国民不愿注射疫苗,对传染病防控带来极大打 ...

最新文章

  1. centos7 升级openssh7.4之后 报错
  2. 如何系统地入门学习stm32?
  3. 万级 K8S 集群背后,etcd 如何保持稳定性?
  4. 如何延长作用域链_第4部分2:作用域(链)和 闭包
  5. print的小白用法
  6. LNMP环境--搭建Discuz论坛
  7. php mb开启,windows环境下如何为php开启mb_string函数库功能
  8. Discrete Logging ZOJ - 1898 (模板题大小步算法)
  9. 5月第3周安全回顾 思科路由器Rootkit现身 企业需漏洞管理
  10. 台式电脑计算机图标打不开怎么办,电脑计算机图标打不开怎么办
  11. oracle auto failover,dg设置auto failover
  12. 网管必修课 中小企业安全路由器配置
  13. gtx1650显卡什么级别! GTX1650相当于什么显卡
  14. 虚拟机使用USB硬件设备
  15. android云测如何使用教程,iTestin使用教程-Testin云测.PDF
  16. Maven配置阿里云仓库和本地仓库
  17. 双线性插值与三线性插值
  18. 树莓派入门(三)之步进电机控制
  19. H5 高德、百度、腾讯地图选择导航功能实现
  20. python实现抽奖软件(一)

热门文章

  1. 电子计算机什么理论,电子计算机的工作原理是什么?
  2. gis怎么通过水库划分子流域_ArcGIS提取小流域——以北京为例,提取出密云水库...
  3. php 检测数组内是否有空值,PHP判断数组是否为空的常用方法
  4. java web 手机验证_Java 手机Web开发 身份验证
  5. 敏感词过滤的php代码,php实现敏感词过滤(Trie树)
  6. 2019黑马python面试资料_2019最新Python黑马头条推荐系统项目
  7. 三极管和MOS管有什么不一样?用MOS管还是三极管?
  8. 经常遇到的10大C语言基础算法(珍藏版源码)
  9. oracle 磁盘不分区吗,LINUX停ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路...
  10. 基于c语言画图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件