Eclipse(Pleiades)からSpringの入門ガイド用のサンプルプロジェクトをインポートし、動作確認やホットリロードを有効にする方法を説明しています。初めてSpring Bootを学習しようと考えている初心者・入門者の方は、参考にしてください。
※ 本ページはプロモーションが含まれています。
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版】
数あるサンプルアプリの中から、試しにSpring BootのRestウェブサービスのサンプルアプリをインポートしてみます。
json形式で"Hello world"を返してくれるシンプルなアプリです。
まずは、Eclipseで新規プロジェクトのウィザードを起動します。
新規プロジェクトのウィザードを起動したら、Spring Boot -> Spring入門コンテンツのインポートを選択し、次へ進みます。
入門コンテンツのインポート画面へ進みますので、たくさんあるサンプルアプリから"Rest Service"を選択します。
上部の入力欄に"rest"と入力しフィルタリングしてあげると探しやすいです。
また、コード・セットの"初期"のチェックを外し、"完全"だけをインポートします。"初期"のプロジェクトは、ほぼプロジェクトのひな型のようなものなので、今回はインポートしません。
インポートが完了すると、"gs-rest-service-complete"というプロジェクトがEclipseのパッケージ・エクスプローラにできます。
恐らく初回インポート時は、必要なライブラリと依存関係のあるライブラリがダウンロードされるため、少し時間がかかると思います。
また、Eclipse内のブラウザにインポートしたプロジェクトのガイドページも表示されます。
ちなみに今回インポートしたサンプルアプリのSpring Bootのバージョンはpom.xmlファイルで確認したら2.7.1でした(2022/11/22時点)。
インポートしたサンプルプロジェクトのアプリを実行し、動作確認をします。
プロジェクトを右クリックし、"実行" -> "Spring Bootアプリケーション"を選択します。
実行すると、Eclipseのコンソールタブに実行時のログが出力されます。
アプリを起動したら、動作確認をしてみましょう。アクセス可能なurlは「http://localhost:8080/greeting」です。
ブラウザで動作確認すると、以下のような表示結果になるはずです。"id"はアクセスするたびに1ずつ増加します。
(*下の表示結果は、JSONViewというjson形式のデータを整形して表示してくれるchromeの拡張機能を使っています)
ターミナル上で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のサンプルプロジェクトのインポートから実行・動作確認をしてきましたが、インポートしたサンプルプロジェクトはホットリロードが有効になっていません。
◾️ホットリロード(ホットスワップ機能)
ホットリロードとは、アプリ実行中に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を学習したい方にとっては、入門ガイドとして良い学習教材になると思います。
また、今回インポートしたサンプルアプリ(Rest Service)のソースコードの解説を別ページでしていますので、興味のある方はそちらも参考にしてみてください。
Spring BootのRESTウェブサービスのサンプルアプリを触ってみる
Spring Boot2で日記投稿ウェブアプリ開発入門トップページ
Spring Bootでシンプルな日記投稿ウェブアプリの開発しながら、入門者・初心者にもわかりやすいように説明しています。DBを使用して、新規投稿、編集、削除、一覧表示という基本的なCRUD機能を備えたアプリです。
Sprint Boot2で初めてのJavaのウェブアプリ開発
Spring Bootをjavaコマンドで起動する
【Sprint Boot2】GETリクエストでクライアントからサーバサイドへデータ送信【クエリストリング】