栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

具有多个应用程序的Tomcat上的类加载器行为

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

具有多个应用程序的Tomcat上的类加载器行为

正如评论所说,您已经正确解释了为什么观察到自己的行为。

关键是ClassLoader的结构。一个JVM中的两个ClassLoader完全有可能每个都加载一个类,因此包含静态字段的单独独立副本。“静态”使ClassLoader(而不是JVM)成为“全局”对象。我想,Tomcat无法容纳带有共享库的容器级ClassLoader,并以某种方式强制每个应用程序ClassLoader分别加载共享库。

但这对于J2EE API和实现之类的其他常见类来说有点浪费。原则上,类无论如何都不应依赖于此ClassLoader结构。

这就是为什么您不应该将应用程序依赖项放在Tomcat的共享库文件夹中的原因。那就是“解决方案”。它将您的应用程序与容器的特定设置和部署联系在一起,这违反了J2EE
Web应用程序的原理。只需将依赖项的副本放在每个应用程序的WEB-INF / lib中。

您观察到的行为是不执行此操作的另一个原因:应用程序之间的隔离度降低了。这并没有使我成为违反直觉的行为,但这只是因为我已经习惯了Tomcat如何工作并思考这些事情。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/514844.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号