マイクロサービスとは

開発環境

  • Spring Tools Suite

今回作成するサービス

データベースにデータを登録します。

プロジェクトの作成

Spring Tools Suiteを起動して、「Springスターター・プロジェクト」を作成します。Springスターター・プロジェクトを作成すると、Spring Bootで使用できる最低限のひな型ソースやpom.xmlが生成されます。このひな形プロジェクトを開発するサービス用にカスタマイズしていきます。
 
生成されるpom.xmlには、あらかじめSpringコミュニティが提供するSpring Bootを利用するために必要な基本的な情報が定義されています。
 
Spring Bootで開発したサービスをビルドするための設定をします。pom.xmlのSpring Boot Mavenプラグインにrepackageゴールを設定し、ビルド時に既存のJARが再パッケージ化されるようにします。
 
最後にpom.xmlを編集し、サービスで利用するモジュールの依存関係を追加します。マイクロサービスでは、APIをもったサービスを開発する必要があるため、最低限Spring MVCを利用するためのspring-boot-starter-webを追加する必要があります。
 
それ以外のモジュールは、プログラムで利用するものを必要に応じて追加します。作成するサービスではLombok、Spring Data JPA、ModelMapperを利用するので、これらのモジュールの依存関係を追加します。
 

サービスの作成

開発環境が準備できたら、サービスを作成していきましょう。サービスはSpring MVCで実装します。もともとSpring MVCはWebアプリケーションをModel層、View層、Controller層の役割分担に分けて実装するためのフレームワークですが、このフレームワークのModel層、Controller層をサービスを実装するのに利用します。ただし、APIをインタフェースとするのでView層は使用せず代わりにRest Controllerを使用してREST APIを実装します。
 

Model層の実装

APIのリクエスト/レスポンスに対応するModelやService層内で利用するModelをPOJOで実装します。なお、今回のサービスではPOJOの実装にLombokを利用し、実装をシンプルにしています。

 
まず、APIのリクエストに対応するModelを作成します。APIの電文であるJSONとModelの変換は暗黙的にSpring Bootで行われますが、フィールドにJacksonアノテーション(@JsonPropertyなど)を付与することで、このJSONへの変換時のマッピングや挙動をカスタマイズできます。
 
このサンプルコードでは@JsonPropertyを指定して、Modelに対応する電文のプロパティ名を変更しています。同様に、APIのレスポンスに対応するModelを作成します。