tomcat类加载顺序的一些疑问

tomcat中一个类的默认加载流程,在网上看见了两种说法。
其一:
1.从缓存中加载
2.如果没有,则从扩展类加载器和Bootstrap类加载器中加载。
3.如果没有,则从当前类加载器加载(按照WEB-INF/classes、WEB-INF/lib的顺序)。
4.如果没有,则从父类加载器加载,由于父类加载器采用默认的委派模型,所以加载顺序为System、Common、Shared。

其二:

  1. 从 JVM 内部的 Bootstrap 仓库加载
  2. 从应用程序加载器路径,即 CLASSPATH 下加载
  3. 从 Web 程序内的 /WEB-INF/classes 目录
  4. 从 Web 程序内的 /WEB-INF/lib 中的 jar 文件
  5. 从容器 Common 加载器仓库,即所有 Web 程序共享的资源加载。

上面加粗的两部分,加载时到底是先去系统类加载器加载还是先Webapp加载器加载呢?

阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题