【发布时间】:2020-10-20 11:34:07
【问题描述】:
在我们的一个生产环境中,我们有一个混乱的结构, tomcat WEB-INF 有带有配置的 ../classes 和带有 jar 的 ../lib。
我们发现classes目录有一个如下包结构的目录, 示例:
com/test/A.class
在 lib 目录中,我们还打包了另一个具有相同类的 jar。
当我们发现正在发生重复处理时,我们调查了真正的问题,但不确定问题是否是因为这个。
实际的问题是,tomcat 启动时会创建同一个类的两个实例并进行并行处理吗?是否有可能,因为类目录和 lib 目录都在类路径中。
【问题讨论】:
-
取决于使用的 ClassLoader。每个 ClassLoader 的一个完全限定类名是唯一的。是的,理论上你可以在一个应用程序中多次加载“com.example.Foo”
标签: java tomcat web-applications classpath