[英]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
自动AppleWatch
到GorillaGlass.java
类中。 然后...
繁荣! 循环依赖错误!
那么,关于我应该为Apple
和/或Corning
做什么的任何建议?
如@unigeek所述,在这种情况下,interfaces是您的朋友。 在构造Maven项目的上下文中,这意味着将接口分成单独的API Maven模块。
不久Corning
将意识到它也向Samsung
提供了GorrilaGlass
,而不仅是Apple
。 因此,现在需要调用getCurrentMarketOrders()
不仅对AppleWatch
,也Gear2
。 该解决方案在此时刻变为更清晰:引进与API模块Marketable
接口,这两个Apple
和Samsung
依赖,同时允许AppleWatch
和Gear2
实现Marketable
。 然后, Corning
仅依赖这个新的API模块,而没有直接依赖于Apple
或Samsung
,而后者都为该接口提供了自己的实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.