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

时间:2011-09-07 12:14:18

标签: java jar dependencies circular-dependency

我正在开发一个包含大量JAR的大项目,并且肯定没有文档存在! :(

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

请指导我如何解决JAR之间的循环依赖关系?

提前致谢。

3 个答案:

答案 0 :(得分:3)

您可以按dependency inversion打破依赖关系。为了避免和解决循环依赖关系,有助于设计分层体系结构。

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

如果你不打破循环依赖包,那些行为与一个大的单片包非常相似!

答案 1 :(得分:1)

除了使用接口之外,您还可以通过在jar /包之间移动类来进行结构改进。分解脂肪类以便将共同责任更容易地组合在一起可以帮助完成这个过程。有几种商业可视化/重组工具可以帮助解决这个问题。

答案 2 :(得分:0)

如果按memory leakage表示more memory than necessary is consumedmy jar(s) is(are) too fat,则可能需要调查Proguard

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

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