0

我有一个包含约 50 个组件的 Spring 项目。不幸的是,其中一个类导致了 Maven 中的循环依赖问题。这是故事:

我在我的 Spring 项目中添加了一个新组件。让我们暂时调用它Apple。它有一个@Bean叫做AppleWatch. 其中一个实现是Apple依赖于另一个组件:Foxconn,因此AppleWatch可以调用 Bean 中的一个方法,称为CheapLabor.

同时,CheapLabor依赖于另一个组件:Corning. 它需要GorillaGlass能够加班。

事情一直很好,直到现在Corning意识到它想根据苹果的市场需求制造类似数量的眼镜来省钱。所以它试图getCurrentMarketOrders()AppleWatch. 为此,我将 bean 自动装配AppleWatch到 classGorillaGlass.java中。然后...

繁荣!循环依赖错误!

那么,关于我应该为Apple和/或做什么的任何建议Corning

4

1 回答 1

0

正如@unigeek 所提到的,在这种情况下,接口是你的朋友。在构建 maven 项目的上下文中,这意味着将接口分离到单独的 API maven 模块中。

很快Corning就会意识到它也供应GorrilaGlassSamsung,而不仅仅是Apple。所以现在它不仅需要调用getCurrentMarketOrders()on AppleWatch,还需要调用Gear2. 解决方案在这一点上变得更加清晰:引入一个 API 模块,其Marketable接口既依赖于,又Apple允许实现。然后简单地依赖于这个新的 API 模块,而不直接依赖于或,而后者都为这个接口提供了自己的实现。SamsungAppleWatchGear2MarketableCorningAppleSamsung

于 2016-05-20T16:05:28.283 回答