0

~50 個のコンポーネントを含む Spring プロジェクトがあります。残念ながら、クラスの 1 つが Maven で循環依存の問題を引き起こしました。ストーリーは次のとおりです。

Spring プロジェクトに新しいコンポーネントを追加しました。とりあえず呼んでみましょうApple。と@Bean呼ばれるものがありAppleWatchます。実装の 1 つは、Apple別のコンポーネント に住んでいた (依存していた)Foxconnため、AppleWatchという名前の Bean 内のメソッドを呼び出すことができましたCheapLabor

その間、CheapLabor別のコンポーネントに依存していました: Corning. GorillaGlass残業できる必要がありました。

CorningApple の市場のニーズに合わせて同じ量のメガネを作ることでお金を節約したいと考えるまでは、状況はかなり良好でした。getCurrentMarketOrders()そのため、 でメソッドを呼び出そうとしますAppleWatch。そのために、BeanAppleWatchを classにオートワイヤーしましたGorillaGlass.java。それで...

ブーム!循環依存エラー!

Appleそれで、および/またはのために何をすべきかについての提案はありCorningますか?

4

1 に答える 1

0

@unigeek が述べたように、この場合、インターフェースはあなたの友達です。そして、Maven プロジェクトを構築するという文脈では、これはインターフェイスを個別の API Maven モジュールに分離することを意味します。

だけでなく、Corningにも供給GorrilaGlassしていることにすぐに気付くでしょう。そのため、 on だけでなく も呼び出す必要があります。この時点で、ソリューションはより明確になります。 と の両方が依存するインターフェースを持つ API モジュールを導入し、との両方を実装できるようにします。次に、この新しい API モジュールに依存するだけで、またはに直接依存することはありませんが、後者はどちらもこのインターフェースに独自の実装を提供します。SamsungApplegetCurrentMarketOrders()AppleWatchGear2MarketableAppleSamsungAppleWatchGear2MarketableCorningAppleSamsung

于 2016-05-20T16:05:28.283 に答える