SpringBootの環境構築をしていく-SpringBoot入門①

SpringBoot(Todo):サムネイル画像1 Todoアプリ(SpringBoot)

SpringBootへの理解を深めることを目的として、Todoアプリを開発します。

初回は、下記がインストール済であることを前提に環境構築します。

  1. Ubuntu(自分はVer20.04)
  2. Visual Studio Code
  3. Java21
想定読者
  • 学生など、アプリ開発初心者
  • Ubuntuを軽く触れる方
  • VSCodeを操作できる方
  • Javaの基礎構文が多少分かる方

SpringBootプロジェクトの作成

空のディレクトリを生成するために、下記コマンドを実行します。

ディレクトリ名は何でもいいです。

$ mkdir ozack-todo-app
$ cd ozack-todo-app
$ code .

生成したディレクトリがVSCode上で表示されます。

画面はそのままにしておいてください。

拡張機能インストール

次に、下記拡張機能をVSCodeにインストールする作業を行います。

  1. Extension Pack for Java
  2. Spring Boot Extension Pack

まず、VSCode上で「Ctrl + Shift + x」の順にキーボード入力します。

すると、画面左上に入力欄が出現するので、「Extension Pack for Java」と入力。

左側に出現したらクリックし、右側のインストール状況を確認してください。

SpringBootでToDo開発:拡張機能1

「インストール」と表示されている場合はクリックしてインストールします。

「アンインストール」と表示されている場合は既にインストールされているので、何もしなくて大丈夫です。

さらに、先ほどと同様、画面左上の入力欄に、「Spring Boot Extension Pack」と入力します。

同じようにインストール状況を確認し、「インストール」と表示されている場合はクリックしてインストールしておきましょう。

SpringBootでToDo開発:拡張機能2

SpringBootプロジェクト生成

インストールした Spring Boot Extension Pack の機能を用いて、SpringBootプロジェクトを生成します。

手順1

まず、「Ctrl + Shift + p」の順にキーボード入力します。

画面上部に入力欄が出現するので、「Spring Initializr」と入力してください。

SpringBootでToDo開発:Springプロジェクト生成手順

今回は Gradle を用いて生成するので、

「Spring Initializr: Create a Gradle Project…」

を選択します。

Spring プロジェクトの生成・起動・更新などといった様々な操作は Gradle というビルドツールを動かすことで実現しています。

そのため、Gradle が Spring Boot を動かしているという認識です。

また、似たような役割を担う Maven も有名で、Gradle と互角のシェア率を有しています。

どちらを使用しても問題ないですが、今回はビルド速度が速い Gradle を採用しています。

手順2

バージョンを選択します。

SNAPSHOTの表示がない一番新しいバージョンを選択してください。

自分の場合は「3.4.1」を選択します。

SpringBootでToDo開発:Springプロジェクト生成手順2

SNAPSHOTの表示があるバージョンは、開発途中のバージョンです。

要するに不完全なため、基本的にはこの表示がないバージョンを選択します。

手順3

プログラミング言語は「Java」を選択します。

SpringBootでToDo開発:Springプロジェクト生成手順2.5

手順4

組織IDのデフォルト値は「example」ですが、分かりやすい名前に変更しておきます。

SpringBootでToDo開発:Springプロジェクト生成手順3

どこのサービスかを識別するためにある印象です。

企業名とかが入るイメージですが、個人開発なので今回はユーザー名にしておきます。

手順5

成果物IDは、何のサービスか識別するためにあります。

デフォルトは「demo」ですが、「todoapp」に変更しておきます。

SpringBootでToDo開発:Springプロジェクト生成手順4

手順6

パッケージタイプは「Jar」を選択します。

SpringBootでToDo開発:Springプロジェクト生成手順5

手順7

Java のバージョンは「21」を選択します。

SpringBootでToDo開発:Springプロジェクト生成手順6

バージョンは17でも全然問題ないですが、数年後には21もメジャーになってきそうなので、今のうちに慣れておこうと思い21を選択しました。

2024年 Javaエコシステムの現状レポート | New Relic
Javaエコシステムの現状についてのコンテキストとインサイトを理解しましょう。最も使用されているバージョン、最も人気のあるフレームワークなどをお伝えします。

手順8

ライブラリは色々必要なので、下記を全て入力してインストールします。

  1. Spring Web
  2. Spring Boot Dev Tools
  3. Spring Security
  4. Spring Data JPA
  5. Lombok
  6. Docker Compose Support
  7. My SQL Driver
  8. Flyway Migration

1・2・5は開発を効率化するための機能が提供されます。

3はログイン・アクセス権限の設定等といった、認証・認可を実装できるようになります。

4はデータベース接続時に必要となります。似たような機能を持つライブラリに JDBC がありますが、汎用性が高い分、かなり複雑で初心者向けではないため、今回はCRUD操作が初期機能として実装されているJPAを使用します。

6は docker という仮想環境を構築するツールを Spring プロジェクト内で実装できるようになります。

今回は、データベースの MySQL ・セッション管理用の Redis を docker 上で使用します。

このようにして別の環境に隔離しておけば、例え致命的なバグが発生したとしても「仮想環境」なので、開発PC上の環境には影響を及ぼしません。

7は MySQL を Spring Boot で扱うために必要です。

8はデータベースのデータを作成・更新・削除するためのライブラリです。

必須ではありませんが、データ管理という面ではあった方が楽なので採用しています。

SpringBootでToDo開発:Springプロジェクト生成手順8

全て選択し終えたらEnterキーを押してください。

手順9

Spring プロジェクトの生成場所です。

変更の必要はないので「ok」を押します。

SpringBootでToDo開発:Springプロジェクト生成手順9

しばらく放置していると、プロジェクト生成に成功したことを示す通知と、オープンを促すボタンが出現するので押します。

SpringBootでToDo開発:Springプロジェクト生成手順10

Spring プロジェクト作成完了

以下の画面が表示されたら成功です!

SpringBootでToDo開発:Springプロジェクト生成成功
Springプロジェクトの生成に成功

画面最下部に位置する「Java:Error」を開いてエラーがないかも確認しましょう。

「検出されたエラーはありません」と表示されていれば問題ないです。

ちなみに、先ほど追加したライブラリは build.gradle に設定されています。

SpringBootでToDo開発:build.gradleに設定が反映されている
build.gradleに設定が反映されている

初期段階では最小限のライブラリしかインポートしていません。

今後の開発に伴い追加でライブラリが必要になったらココを直接編集します。

定期的に出現する警告について

今は環境構築したばかりなので発生していないと思いますが、Spring Boot で開発していると結構な頻度で以下の警告が突然出現します。

SpringBootでTodo開発:build.gradle new version 参考画像1
新しいバージョンが使える

これは、より新しいバージョンが使えることを示すもので、特に変更しなくても問題ないです。

が、記載されているバージョンに変更すれば警告がなくなります。

自分は直ぐに変更する派なので、ついでに手順を記しておきます。

手順1

この記載がある箇所を変更します。

id 'org.springframework.boot' version 'X.Y.Z'

今回は指定された「3.4.2」にバージョンを変更しています。

以下の画像では11行目ですが、プロジェクトの進捗状況によって内容が違うため、「plugins」を見つけて、その中を探すようにしてください。

SpringBootでTodo開発:build.gradle で Spring Boot のバージョンを更新
11行目を変更

保存の際に「Yes」ボタンが出現したら押しましょう。

手順2

ビルドファイルの更新が始まるので、終わるまで待機します。

SpringBootでTodo開発:build.gradle で Spring Boot のバージョン更新が完了
更新完了後の画面

この画面になればバージョン更新に成功です!

Docker Desktop のインストール

最後に Docker Desktop をインストールします。

Docker を使用するためには、このツールが必要になります。

下記サイトの説明が分かりやすかったので、ここのインストール方法は丸投げします。

Windows 11にDocker Desktopを入れる手順(令和5年最新版) - Qiita
概要Windows 11 で Docker Desktop を動かすまでの手順を、比較的初心者を対象とし、順を追って作業できるようにまとめました。背景などこんにちは、Docker Captai…

まとめ

初回は Spring Boot の環境構築を行いました。

第2回第3回は主にデータベース関連の準備を行います。

Spring Boot の本筋に触れるのは第4回からです。

こんな感じのシステム構成にしていきますが、詳細は第4回で解説します。

SpringBootでTodo開発:システム構成図1
システム構成図

画面幅の都合等で見づらい場合は以下の画像をクリックすると直接参照できます。

MySQL
MySQL
Adminer
Adminer
Controller
Controller
Service
Service
Repository
Repository
SpringBoot
localhost:8080
SpringBoot…
Dto・Entity
Dto・Entity
localhost:3306
localhost:3306
localhost:8000
localhost:8000
処理呼出
処理呼出
処理呼出
処理呼出
処理結果返却
処理結果返却
処理結果返却
処理結果返却
SQL 処理を実行させる
SQL 処理を実行させる
SQL の処理結果を返却
SQL の処理結果を返却
DBの中身
みせて
DBの中身…
内部情報
を返却
内部情報 を返却
型参照
型参照
型参照
型参照
型参照
型参照
React
localhost:3000
React…
リクエスト
リクエスト
レスポンス
レスポンス
SQL テーブルと対
になるように作成する
型定義ファイル
SQL テーブルと対…
ブラウザから接続
ブラウザから接続
Todo 画面を表示
Todo 画面を表示
パスワード等、ユーザーに見せたくない
情報を削ぎ落とすための型定義ファイル
パスワード等、ユーザーに見せたくない 情報を削ぎ落とすための型定義ファイル
開発者
開発者
ブラウザ
から接続
ブラウザ から接続
DB 管理画面を表示
DB 管理画面を表示
Ubuntu
Ubuntu
Text is not SVG – cannot display

次回は ToDo アプリに必要な SQL テーブルの構成を設計します。

タイトルとURLをコピーしました