Spring Boot でサービス開発 #2
Sakila データベースの起動
前回、Docker で Sakila データベースを構成しました。
システムログイン等している場合は Sakila データベースが落ちているケースがあるので、Docker Desktop 経由もしくは docker コマンドで起動します。
$ docker start sakila
IntelliJ による Spring Boot開発
IntelliJ IDEA を開き、New Project を選択します。
左のメニューから「Spring Initializr」を選択後、プロジェクト名、ロケーションを任意のものに設定し、「Next」を選択します。
Spring Web / Spring Data JPA / MySQL Driver にチェックを入れ、「Finish」を選択します。
モデルの作成
「com.example.sakila」パッケージを右クリックして、「New」 →「Java Class」の順に選択します。パッケージを選択して「Command」+「N」キーでも問題ありません。
クラス名に「model.Actor」と入れ、「Enter」を押します。
以下の内容を Acor クラスに貼りましょう。
これは actor テーブルを Java にマッピングするためのクラスになります。いつか解説しますが、このクラスファイルはドメイン駆動設計におけるドメインモデル貧血症のクラスです。
Crud Repository の作成
先ほどと同様に「com.example.sakila」パッケージを右クリックして「New」 →「Java Class」の順に選択します。
「Interface」を選択し、「ActorCrudRepository」と入力し「Enter」キーを押します。
作成されたインターフェースファイルに以下を貼り付けます。
Service クラスの作成
本来 Spring Boot では Service クラスを作成して、ここにビジネスロジックを記述するのですが、今回は CrudRepository が提供するメソッドをそのまま REST API の口として外部に公開するため、こちらは省略します。
Controller クラス(REST の口) の作成
パッケージ選択、右クリック → 「New」 →「Java Class」を選択します。
「ActorController」と入力し、「Enter」を押します。
作成されたクラスファイルを以下のように書き換えます。
MySQL への接続情報
「resource」を右クリックし、「New」 →「File」を選択します。
「application.yaml」と入力し、「Enter」を押します。
yaml ファイルを上記のように書き換えます。
Spring Boot の起動
IntelliJ IDEA の右側にある「Maven」から「spring-boot」 →「spring-boot:run」をダブルクリックします。
コンソールに以下のような画面が出力され、Spring Boot が起動します。
HTTP リクエストの送信
「Scratches」から「New」 → 「HTTP Request」を選択します。
「sakila」と入力し、「Enter」を押します。
開かれた HTTP Request に以下を入力します。
GET http://localhost:8080/api/actor/all
再生ボタンを押下します。
コンソールに以下のように JSON が出力されれば成功です。
今回はここまでとなります。