Spring Bootの入門用サンプルプロジェクトをEclipseにインポートして動かしてみる

Eclipse(Pleiades)からSpringの入門ガイド用のサンプルプロジェクトをインポートし、動作確認やホットリロードを有効にする方法を説明しています。初めてSpring Bootを学習しようと考えている初心者・入門者の方は、参考にしてください。

今回の目的と環境

最終更新日:2021/5/5

Springの公式サイトでは、入門者へのガイドとしてチュートリアルやアプリのサンプルコードがたくさん用意されています。
アプリのサンプルの一例としては、Spring Boot、Spring MVC、Spring Data JPAでのDBアクセス、Spring Securityなどです。

サンプルコードはGithubからダウンロードする事ができますが、開発環境のSTS(Spring Tool Suite)やSTSプラグインが入っているEclipseなら、ウィザードから手軽にSpringのサンプルアプリをインポートする事ができます。

シンプルなアプリのソースを見たり動かしたりする事は、Spring Bootの最初の学習としてとても良いと思います。
ここでは、EclipseからSpring Bootのサンプルプロジェクトをインポートして動作確認までをしていきます。

・開発環境やバージョンは以下の通りです。
OS:macOS Catalina(バージョン10.15.5)
開発環境:Eclipse(Pleiades All in One、4.16(2020-06)、Java Full Edition版)、(*2020/8/28時点の最新安定版です)

◾️Eclipse(Pleiades All in One、Java Full Edition版)
Eclipse(Pleiades All in One、Java Full Edition版)は、最初からEclipseの日本語化がされていますし、STS(Spring Tool Suite)やLombokなどの複数の有用なプラグインも入っていて設定済みなので、開発環境構築の手間が省けます。
Eclipseの導入については別ページに書いていますので、参考にしてください。

【Java初心者】Eclipse(Pleiades All in One)をインスールしてJava開発ができるようにする【macOS版】

EclipseでSpring BootのRestウェブサービスのサンプルプロジェクトをインポートする

数あるサンプルアプリの中から、試しにSpring BootのRestウェブサービスのサンプルアプリをインポートしてみます。
json形式で"Hello world"を返してくれるシンプルなアプリです。

まずは、Eclipseで新規プロジェクトのウィザードを起動します。
Eclipseで新規プロジェクトのウィザードを起動

新規プロジェクトのウィザードを起動したら、Spring Boot -> Spring入門コンテンツのインポートを選択し、次へ進みます。
EclipseでSpring入門コンテンツのインポート

入門コンテンツのインポート画面へ進みますので、たくさんあるサンプルアプリから"Rest Service"を選択します。
上部の入力欄に"rest"と入力しフィルタリングしてあげると探しやすいです。
また、コード・セットの"初期"のチェックを外し、"完全"だけをインポートします。"初期"のプロジェクトは、ほぼプロジェクトのひな型のようなものなので、今回はインポートしません。
SpringのRESTWebサービスのインポート

インポートが完了すると、"gs-rest-service-complete"というプロジェクトがEclipseのパッケージ・エクスプローラにできます。
恐らく初回インポート時は、必要なライブラリと依存関係のあるライブラリがダウンロードされるため、少し時間がかかると思います。
また、Eclipse内のブラウザにインポートしたプロジェクトのガイドページも表示されます。

インポートしたSpring Bootのサンプルプロジェクトを実行して動作確認をする

インポートしたサンプルプロジェクトのアプリを実行し、動作確認をします。
プロジェクトを右クリックし、"実行" -> "Spring Bootアプリケーション"を選択します。
実行すると、Eclipseのコンソールタブに実行時のログが出力されます。
EclipseでSpringプロジェクトの実行

アプリを起動したら、動作確認をしてみましょう。アクセス可能なurlは「http://localhost:8080/greeting」です。
ブラウザで動作確認すると、以下のような表示結果になるはずです。"id"はアクセスするたびに1ずつ増加します。
(*下の表示結果は、JSONViewというjson形式のデータを整形して表示してくれるchromeの拡張機能を使っています)
EclipseでSpringプロジェクトの実行

ターミナル上でcurlを使っても、簡単に動作確認できます。

$ curl http://localhost:8080/greeting
{"id":2,"content":"Hello, World!"}

また、このサンプルアプリでは、リクエストurlのクエリストリングに"name"パラメータを指定することができます。
"name"パラメータに指定した値が、何も指定していない時の表示結果の"World"と置き換わります。

$ curl http://localhost:8080/greeting?name=cat
{"id":8,"content":"Hello, cat!"}

Spring Bootプロジェクトのホットリロードを有効にする

Springのサンプルプロジェクトのインポートから実行・動作確認をしてきましたが、インポートしたサンプルプロジェクトはホットリロードが有効になっていません。

◾️ホットリロード(ホットスワップ機能)
ホットリロードとは、アプリ実行中にJavaのソースコードを変更した際、変更されたJavaファイルを検知して自動でコンパイルし、さらにアプリに変更を反映してくれます。
ホットリロードが有効になっていれば、ソースコード変更時にいちいちアプリを再起動し直す必要がないので、開発効率が大きく改善します。 別の言い方として、ホットスワップ機能、ホットデプロイなどがあります。

そして、このホットリロードをEclipseでのSpring Bootアプリの開発で有効にするには、"Spring Boot DevTools"が必要になります。

"Spring Boot DevTools"を導入するには、プロジェクト内にpom.xmlファイル(Mavenで使用される)がありますので、pom.xmlの<dependencies>タグ内に、<dependency>タグを追加します。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <scope>runtime</scope>
  <optional>true</optional>
</dependency>

これで、"Spring Boot DevTools"に必要なライブラリ群が開発環境に導入され、ホットリロードが有効になります。

ホットリロードの動作確認として、プロジェクト内にコントローラクラスのGreetingControllerクラスがありますので、アプリ実行中にGreetingControllerのソースを少しいじって変更してみましょう。
例えば、アクセスを受けるurlの"/greeting"や、表示結果の文字列の"Hello"を変更してみるのが良いかもしれません。

@RestController
public class GreetingController {

	private static final String template = "Hello, %s!";
	private final AtomicLong counter = new AtomicLong();

	@GetMapping("/greeting")
	public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
		return new Greeting(counter.incrementAndGet(), String.format(template, name));
	}
}

最後に

今回は、EclipseでSpringのサンプルプロジェクトのインポート方法から実行・動作確認をしました。 また、ホットリロードの設定についも解説してみました。

最初に書きましたが、Springの公式サイトでは、Spring入門者へのガイドとして他にも多くのアプリのサンプルコードが用意されていますので、初めてSpring Bootを学習したい方にとっては、入門ガイドとして良い学習教材になると思います。

また、今回インポートしたサンプルアプリのソースを別ページで解説していますので、そちらも参考にしてみてください。
Spring BootのRESTウェブサービスのサンプルアプリを触ってみる

[広告] Kindle Unlimitedなら対象の本が定額で読み放題
対象本には、プログラミングなどのIT関連本、マンガ、雑誌、ビジネス書などがたくさんあります!

その他のSpring Bootの記事

Spring Boot2で日記投稿ウェブアプリ開発入門トップページ
Spring Boot2.3,2.4でシンプルな日記投稿ウェブアプリの開発しながら、入門者・初心者にもわかりやすいように説明しています。DBを使用して、新規投稿、編集、削除、一覧表示という基本的なCRUD機能を備えたアプリです。

Sprint Boot2で初めてのJavaのウェブアプリ開発
【Sprint Boot2】GETリクエストでクライアントからサーバサイドへデータ送信【クエリストリング】
【Sprint Boot2】POSTリクエストでクライアント側からサーバサイドへデータ送信