モジュール化とスケーラビリティを可能な限り維持するために、中規模のJavaプロジェクトを構築しようとしています。そのために、メイン アーキテクチャは、おそらく実行時に jar で提供される一部のクラス (モジュール) のロードのみを担当します。このソリューションには明らかに動的なクラスのロードが必要ですが、コンポーネントの結合が最小限に抑えられます。
さて、問題が発生します。各モジュールは、いくつかのライブラリに依存している場合があります (たとえば、Hibernate、Spring などとしましょう)。依存関係の地獄を避けるために、すべてのライブラリをアーキテクチャ インターフェイスと共に 1 つのプロジェクトに配置し、このプロジェクトをすべてのモジュールの依存関係として含めます。理想的には、この依存関係プロジェクトをクラスローディングから動的に除外して、実行時の問題を回避したいと考えています。
ここに私の質問があります:
- まず、これでよろしいでしょうか?私が見逃しているこの問題に対するより良いアプローチはありますか?
- これは私が気にするべきことですか?または、同じクラスを複数回含めているという事実は問題になりませんか?
- それが問題である場合、そのクラスをロードから除外する最善の方法は何でしょうか? パッケージごとにフィルタリングすることを考えていましたが、よくわかりません。
この種のアーキテクチャを使用するのか、代わりに Maven を使用して各モジュールの依存プロジェクトを除く完全なプロジェクトを静的にビルドするのか、まだよくわかりません。
続行する方法についての提案は本当に感謝しています。
現時点では、Maven を使用してビルドし、Spring をフレームワークとして使用していますが、他のテクノロジーを追加してもかまいません。
ありがとうございました。