Java 如何解决JAR之间的循环依赖关系?

Java 如何解决JAR之间的循环依赖关系?,java,jar,dependencies,circular-dependency,Java,Jar,Dependencies,Circular Dependency,我正在做一个有很多JAR的大项目,而且肯定没有文档存在!!:( 为了确保应用程序中没有内存泄漏,我曾经检查JAR之间的循环依赖关系,不幸的是,我发现了很多 你能指导我如何解决JAR之间的循环依赖关系吗 提前感谢。您可以通过打破依赖关系来避免和解决循环依赖关系,这有助于设计分层体系结构 也就是说,循环依赖不会导致内存泄漏。但是打破循环依赖有很多积极的影响,主要是模块化。这不仅增加了灵活性,而且有助于检查和解决问题,包括内存泄漏 如果您不破坏循环依赖包,那么这些包的行为与一个大型单片包非常相似。如果

我正在做一个有很多JAR的大项目,而且肯定没有文档存在!!:(

为了确保应用程序中没有内存泄漏,我曾经检查JAR之间的循环依赖关系,不幸的是,我发现了很多

你能指导我如何解决JAR之间的循环依赖关系吗


提前感谢。

您可以通过打破依赖关系来避免和解决循环依赖关系,这有助于设计分层体系结构

也就是说,循环依赖不会导致内存泄漏。但是打破循环依赖有很多积极的影响,主要是模块化。这不仅增加了灵活性,而且有助于检查和解决问题,包括内存泄漏


如果您不破坏循环依赖包,那么这些包的行为与一个大型单片包非常相似。

如果
内存泄漏,您的意思是
消耗的内存超过了需要的量
或者
我的罐子太胖了
,那么,您可能需要进行调查

我正在创建大型maven项目,它依赖于许多库,这些库本身也依赖于其他库。但是,我并没有使用所有库中的所有代码。Proguard基本上帮助我修剪和删除所有不必要的代码


对于我来说,这确实是一个干净的工具。我用所有依赖项创建了一个巨大的胖jar,在代码中配置我的入口点,然后它收缩了所有内容。

除了使用接口之外,您还可以通过在jar/包之间移动类来进行结构改进。分解胖类以便能够完成常见的职责更容易地组合在一起有助于这一过程。有几种商业可视化/重组工具可以帮助实现这一点。

您是否能够重新打包jar或从头开始重新构建它们?如果可以,请尝试创建第三个包含公共代码或依赖项的jar。除此之外,为什么要在jar之间循环依赖项只要每个jar只存在一次,并且没有不使用类存储库的自定义类加载器,jar就会导致内存泄漏?jar之间的循环依赖关系虽然不好,但不会导致内存泄漏。请检查第三段@link。据说循环依赖关系可以通过阻止垃圾收集而导致内存泄漏或者通过释放未使用的对象+JVersty感谢这个工具!我想它会解决我的问题。:)