私は2、サービスがあり、各コントローラを持っています。
@Service
public class Service1
{
}
@RestController
@RequestMapping("/api")
public class Controller1
{
}
...
@Service
public class Service2
{
}
@RestController
@RequestMapping("/api")
public class Controller2
{
}
私は自分のプロセス内の各サービスやコントローラーを実行したいと思います。どのように私は2つのアプリを作成せずにこれを行うことができますか?
付属部品図を考えると、私はmicroservicesアーキテクチャに探してお勧めします。あなたは、ドメイン(映画、顧客、レビュー)によって責任を分離しても、別のアクセスルール(映画カタログや顧客データへのアクセスをセキュアにするためなどの匿名アクセス)を構築することができるようになります。各データストレージ(DB1、DB2など)が唯一の責任サービスにリンクされます。また、あなたは利用状況など5つの映画サービス、2つの顧客データサービス、及び3つのレビューサービスに応じて、正確に必要なサービスを拡張することができるようになります。
GradleのかMavenは簡単に使用すると、複数のサブモジュールで大きなプロジェクトをビルドすることができます。あなたのモジュールのいくつかは、アプリケーションモジュールとなり、そのうちのいくつかは、共有モジュール(モデル、utilsの、など)になります。
また、私は、簡素化、変更管理およびレビューするために、プロジェクトごとに別々のレポを設定することをお勧めします - それは大規模で非常に参考になります。
例Gradleの構造:
ルートモジュール
- モデル
- utilsの
- 映画サービス
- 顧客サービス
- レビューサービス
各サービスのサブモジュールは、コントローラ、サービスおよびリポジトリを持つ独自の@SpringBootApplicationが含まれています。もちろん、あなたは、各サービスのサブモジュールに春ブーツのGradleプラグインを追加する必要があります。
更新:今後、各サービスのサブモジュールにドッカー設定を追加し、ドッカーコンテナとして各アプリケーションを実行するのが賢明だろう。ドッカーが大幅に開発を簡素化します。