tomcat类加载顺序的一些疑问
tomcat中一个类的默认加载流程,在网上看见了两种说法。
其一:
1.从缓存中加载
2.如果没有,则从扩展类加载器和Bootstrap类加载器中加载。
3.如果没有,则从当前类加载器加载(按照WEB-INF/classes、WEB-INF/lib的顺序)。
4.如果没有,则从父类加载器加载,由于父类加载器采用默认的委派模型,所以加载顺序为System、Common、Shared。
其二:
- 从 JVM 内部的 Bootstrap 仓库加载
- 从应用程序加载器路径,即 CLASSPATH 下加载
- 从 Web 程序内的 /WEB-INF/classes 目录
- 从 Web 程序内的 /WEB-INF/lib 中的 jar 文件
- 从容器 Common 加载器仓库,即所有 Web 程序共享的资源加载。
上面加粗的两部分,加载时到底是先去系统类加载器加载还是先Webapp加载器加载呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论