作って学ぶ Spring Boot アプリケーション (1) -準備編-


はじめに

現在必要に迫られて英語の勉強をしており、せっかくなら勉強も兼ねて自分にあった学習記録サービスを自分で作ってみよう、と考えてこの記事を書いています。
今回はSpring Bootアプリケーションを作りながら学んでいくというスタンスで開発を進めていきます。
複数回に分けて記事にする予定です。

前提

必須
- Javaの基本的な知識
- Javaの開発環境
- 基本的なSpringの知識(大体の雰囲気でOK)

あればGood
- Mavenの基本的な知識
- webアプリケーションの入門レベルの知識
- h2データベースの基礎知識
- lombokの使い方

全ての知識がほぼ0の状態から始めます。
よって、上記の初歩的な知識のみを持っている状態から進めていきます。

環境

開発言語:Java8
フレームワーク:Spring(Springを学ぶのが目的のため確定)
データベース:H2(なんとなく)
ビルドツール:Maven(なんかよく分からんくても大丈夫)
開発環境:IntelliJ(お好きな開発環境でどうぞ)

要件定義

今回は学習記録システムを開発します。

データベース

学習教材と学習記録をデータとして保持して、それぞれ下記の要素を持っているものとします。

  • 教材テーブル(Subject)
    • 項目ID(Long)
    • 学習項目(String)
    • タイプ(教科等)(String)
  • 学習記録テーブル(Record)
    • 記録ID(Long)
    • 日付(Date)
    • 項目(Subject)
    • 時間(Double)
    • 備考(String)
要件

以下の操作ができるようにします。

  • 項目一覧の取得 () -> (List)
  • 項目の追加 (SubjectName, Type) -> (Subject)
  • 項目の削除 (SubjectID) -> ()
  • 記録一覧の取得 () -> (List)
  • 記録の追加 (Date, SubjectID, Hours) -> (RecordID)
  • 記録の削除 (RecordID) -> ()

開発

アプリケーションの作成

まず、雛形となるアプリケーションをSpring Initializerを利用して作成する。
Spring Initializer : Springアプリケーションの雛形を簡単に作成してくれるサービス
https://start.spring.io/

Spring Initializerのページに行ったら以下の項目を編集してください。
Groop名:パッケージ名になります。好きな名前でどうぞ
Artifact名:アプリケーション名になります。好きな名前で
Dependencies:以下を追加してください
- Spring Web
- Spring Data JPA
- H2 Database
- Lombok

これでGenerateを押すとダウンロードが始まります。
終わったらzipを解答して、プロジェクトを好きなディレクトリに配置してください。

初期設定

ここまで出来たら、開発環境から先ほどのプロジェクトを開いてください。
その後、application.propertiesファイルを開き、${...}の中を適宜書き換えて以下の情報を追記してください。

application.properties
# datasource
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:./h2db/${プロジェクト名}
spring.datasource.username=${好きな名前}
spring.datasource.password=

# h2 for debug tool
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.web-allow-others=true

# データをベースのデータを永続化したい(起動時に消したくない)場合はこのコメントアウトを外す
# spring.jpa.hibernate.ddl-auto=update

ここまで来たらメイン関数があるクラスを開き、実行してみてください。
エラーがでなければ、これで下準備は終了です。

次からはいよいよ開発を行って行きます。

作って学ぶ Spring Boot アプリケーション(2) -開発編-