簡體   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