繁体   English   中英

Spring项目的Maven循环依赖问题

[英]Maven cyclic dependency issue for Spring project

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

我在Spring项目中添加了一个新组件。 现在将其称为Apple 它有一个@Bean称为AppleWatch 其中一种实现方式是Apple依赖于另一个组件: Foxconn ,因此AppleWatch可以在Bean中调用一个名为CheapLabor

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

直到Corning意识到自己想通过根据苹果公司的市场需求制作相同数量的眼镜来省钱的时候,情况Corning不错。 因此,它尝试在AppleWatch调用方法getCurrentMarketOrders() 为此,我将bean AppleWatch自动AppleWatchGorillaGlass.java类中。 然后...

繁荣! 循环依赖错误!

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

如@unigeek所述,在这种情况下,interfaces是您的朋友。 在构造Maven项目的上下文中,这意味着将接口分成单独的API Maven模块。

不久Corning将意识到它也向Samsung提供了GorrilaGlass ,而不仅是Apple 因此,现在需要调用getCurrentMarketOrders()不仅对AppleWatch ,也Gear2 该解决方案在此时刻变为更清晰:引进与API模块Marketable接口,这两个AppleSamsung依赖,同时允许AppleWatchGear2实现Marketable 然后, Corning仅依赖这个新的API模块,而没有直接依赖于AppleSamsung ,而后者都为该接口提供了自己的实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM