Spring Bootとは?Spring Bootの基礎や使い方を初心者向けに解説!チュートリアルやおすすめの本も紹介
多くのWebアプリケーションフレームワークがある中で最もユーザに使われているフレームワークが「Spring Boot」といわれています。
本記事では、初心者でもSpring Bootをすぐに利用できるように、環境構築から簡単なWebアプリケーション開発までの手順をわかりやすく解説します。
Spring Bootとは
Spring Bootは、JavaによるWebアプリケーションの開発を迅速かつ効率的に行う仕組みを備えたフレームワークです。
Spring Frameworkは現在に至るまで様々な機能拡張がなされ、それらがサブコンポーネントのような位置づけで個々のフレームワークとして提供されてきました。
豊富な機能が充実する一方で、組み合わせて使うには煩雑な設定とノウハウが必要という課題も指摘されるようになりました。
この課題に取り組み、最小限の設定とより少ないコード量でアプリケーションを作成して、すぐに実行できる仕組みを実装したのがSpring Bootです。
Spring BootもSpring Frameworkをベースとするフレームワークのひとつです。
従来の豊富な各種コンポーネントを組み合わせて活用しつつ、迅速な開発のための新たな機能を実装しています。
Spring Bootの特徴
Spring Bootの主な特徴は以下の通りです。
XML設定ファイルが不要
Spring Bootでは、煩雑であったXML設定ファイルをなくし、さらに基本的な設定を自動化しています。
必要最小限の設定のみでのWebアプリケーションの実行が可能となりました。
スタンドアロン・アプリケーションの生成
Spring Bootでは、単一のjarファイルで実行できるスタンドアロン的なWebアプリケーションを構築する仕組みを搭載しています。
Webコンテナの組み込み
Spring Bootでは、標準機能としてTomcatやJettyなどのWebコンテナが組み込まれています。
Tomcatとは?使い方を分かりやすく解説!初心者向けのインストール手順も確認。Apacheと連携するメリットも紹介
WebアプリケーションをWebコンテナの組み込まれたjarファイルで起動することができ、デプロイの手間が不要となりました。
Spring Bootの開発環境の構築
Spring Bootでは、専用の統合開発環境である「Spring Tool Suite(STS:以下STSといいます)」が用意されています。
ここではSTSを利用するための前提条件と環境構築手順について解説します。
本記事で前提とする環境は次の通りです。
Windows | Windows10 64bit |
JDK | JDK1.8.0 |
Spring Tool Suite(STS) | Spring Tool Suite4.4.5.1 |
Spring Boot | Spring Boot2.2.4 |
STSを利用するにはJDK(Java SE Development Kit)が必須です。
もしJDKが、インストールされていなければ、OracleのJDKダウンロードサイトよりインストールをしてください。
Spring Tool Suite(STS)のインストール手順
STSのダウンロード
STSは、SpringSourceの公式サイトからダウンロードをすることができます。
このページでSpring Tools 4 for Eclipse のWINDOWS 64-BITを選択すると画面下部に以下の表示がでてきます。
保存ボタンを押して任意フォルダを指定するとダウンロードが開始され、次の名称の約388MBの自動解凍型のjarファイルができます。
バージョン番号部分は、ダウンロードの時期によって異なります。
これでSTSのダウンロードが完了しました。
STSのインストール
ダウンロードしたjarファイルを選択して実行するとSTSのインストールが始まります。
インストールを開始すると、ステータス画面がでてきます。
ステータスが100%になるとsts-4.5.1RELEASEというフォルダがjarファイルと同じフォルダ内に新規に作成されます。
このフォルダ内を参照すると次のようなサブフォルダとファイルができています。
これで、STSのインストールが完了しました。
STSの起動
STSを起動するには、Spring Tools Suite4.exe を選択して実行します。
実行がはじまるとSelect a directory as worlspaceの画面が表示されます。
ワークスペースとするフォルダを選択する画面です。
デフォルトのままLaunchボタンを押してしばらく待つとSTSの画面が表示されます。
これでSTSが正常に起動できました。
この状態では標準の英語表記となっていますが、次章で説明する日本語化をするとこの画面も日本語表記となります。
Spring tool Suite(STS)の日本語化
STSを日本語化する方法を説明します。
STSはEclipseをベースに開発されているため、Eclipseの日本語化プラグイン「Pleiades」を適用することで、STSの日本語化ができます。
Pleiadesプラグインのダウンロード
Pleiadesプラグインは、開発元のMargeDoc Projectの公式サイトよりダウンロードできます。
ページ内のPleiades プラグイン・ダウンロードの表示があるところで、Windowsを選択すると、pleiades-win.zipという圧縮ファイルがダウンロードされます。
ダウンロードされたzipファイルを選択して解凍します。展開されたフォルダには、サブフォルダとファイルができています。
以上で、Pleiadesプラグインのダウンロードとダウンロードファイルの展開ができました。
Pleiadesプラグインのインストール
ダウンロードファイルを展開したフォルダで、setup.exeを選択して実行するとインストールが開始されます。
Pleiades 日本語化プラグインのセットアップ画面が表示されるので選択ボタンを選んで日本語化されるアプリケーションを選択します。
あらかじめインストールしたSTSの実行ファイル、SpringToolSuite4.exeを指定して、開くボタンを押します。
日本語化するアプリケーション、Pleiadesが配置されるディレクトリ、Pleiadesの設定が追加されるファイルの内容が表示されます。
間違いがないことを確認して日本語化するボタンを押して、STSの日本語化が完了しました。
Spring Tool Suite(STS)日本語版の起動
STSを起動して、正常に日本語化がされたかを検証します。
Spring Tools Suite4.exe を選択して実行します。
実行がはじまるとワークスペースとしてのディレクトリー選択画面が表示されます。
正常に日本語化対応がされています。起動ボタンを押すと、ステータスの画面が表示されしばらくすると、STSの画面が表示されます。STSの画面が日本語表記になります。
Spring Tool Suite STSの画面構成
STSを起動すると画面が表示されます。区切られたひとつひとつのエリアのことをビューといいます。
パッケージエクスプローラー
ビューにはプロジェクトを構成するフォルダやファイルが階層的に表示されます。ファイルの新規追加や削除等の操作ができます。
Bootダッシュボード
このビューでは、Spring Bootで作成されたアプリケーションプロセスのの起動や再起動、停止などの制御ができます。
編集エリア
パッケージエクスプローラ上で選択されたファイルの編集作業をするビューです。
コンソール
コンソールのビュー上には、アプリケーションの実行状況やエラーメッセージなどが表示されます。
アウトライン
このビューでは、編集画面に表示されるコードの階層構造が表示されます。階層構造の項目を指定して編集画面のポインタを移動させることなどができます。
Webアプリケーション作成(1)
本章では、Spring Bootのチュートリアルに従って、Spring initializrを用いたWebアプリケーションの作成手順を説明します。
Spring Initializrの取得
こちらのサイトを開きます。ページを下にたどると、Starting Spring Initializrの説明がでてきます。
Spring Initializrを選択すると、ダウンロード用の画面が表示されるので、Dependenciesの欄にwebと入力してSpring web を選択します。
他の項目は、デフォルトの状態としてGenerate-Ctrl+を選択すると、demo.zipというInitializrのzipファイルがダウンロードできます。これを任意のフォルダに保存しておきます。
demo.zipを展開するとdemoフォルダが作成されます。
Spring Initializrのインポート
次に、STSを起動して、STSの画面を開きます。ファイルメニューよりインポートを選択します。
インポート画面が表示されます。
既存Marvenプロジェクトが選ばれていることを確認して次へのボタンを押すと、Mavenプロジェクトの画面が表示されます。
参照ボタンを押して、Initializrのdemoフォルダのパスを入力します。画面に正常にパスが表示されたら、完了ボタンを押します。
demoのプロジェクトがインポートされます。
パッケージエクプローラーでDemoApplication.javaを指定すると編集エリアにコードが表示されます。
コントローラークラスの作成
demoプロジェクトは、このままでは実行できません。
コントローラークラスを追加してSpring Bootのチュートリアルのサンプル、HelloControllerをそのまま実装することにします。
クラスの新規作成
STS画面で、ファイルメニューより、新規—クラスを選択するとJavaクラスの画面が表示されます。
名前をHelloControllerとして、完了ボタンを押すと、HelloContorollerのひな型が作成されました。
RestContollerの実装
編集エリアでHelloControllに次のコードを記述します。RestContorollerを用いたコードとします。
編集エリアにコードが表示されています。
アプリケーションの実行
パッケージエクスプローラーでdemo(boot)を指定して、STSの実行(R)メニューより実行(S) — Spring Boot App を選択します。
コンソールに実行状況のログが表示されます。
ブラウザで確認
ブラウザを開いて、URLにhttp://localhost:8080 を入力します。作成したWebアプリケーションの実行結果が次のように表示されます。
Webアプリケーションdemoが正常に実行されてGreetings from Spring Boot!というメッセージが表示されました。
Webアプリケーション作成(2)
本章では、Spring スターター・プロジェクトを使ったWebアプリケーションの作成手順を説明します。
作成するWebアプリケーションの内容は前章で作成したSpring Intialozr と同様のものとしますが、ここでは既存プロジェクトをインポートするのではなく、Springスターターの機能を用いて新規にプロジェクトを作成します。
Springスターター・プロジェクトの設定
STSのファイルメニューより、新規—Springスターター・プロジェクトを選択します。
名前をdemo2と入力し、その他の設定はデフォルトを使うことにしまて、次へのボタンを押します。
新規Springスターター・プロジェクト依存関係の画面が表示されるので、使用可能の欄にwebと入力し、表示された一覧からSpring Webにチェックをつけて完了ボタンを押します。
プロジェクトの作成が完了して、パッケージ・エクスプローラーにプロジェクトdemo2が追加されました。
クラスの新規作成
コントローラークラスを追加します。前章と同様にHelloControllerを実装していきす。
パッケージ・エクスプローラーでdemo2を指定して、ファイルメニューより、新規—クラスを選択します。
名前をHelloControllerとして完了ボタンを押し、HelloContorollerのひな型を作成します。
RestContollerの実装
HelloControllに次のコードを記述します。RestContorollerを用います。
編集エリアにコードが表示されています。これでdemo2プロジェクトが完成です。
アプリケーションの実行
パッケージエクスプローラーで、demo2(boot)を指定して、STSの実行(R)メニューより実行(S) — Spring Boot App を選択します。
コンソールに実行状況のログが表示されます。
ブラウザで確認
ブラウザを開いて、URLにhttp://localhost:8080 を入力します。作成したWebアプリケーションの実行結果が次のように表示されます。
Webアプリケーションdemo2が正常に実行されてGreetings from Spring Boot!というメッセージが表示されました。
Webアプリケーション作成(3)
本章では、STSの「Thymeleaf」テンプレートとControllerを用いたWebアプリケーションの作成手順を説明します。
Spring Bootでは、このThymeleafのテンプレートとControllerを用いる手法が一般的です。
Springスターター・プロジェクトの設定
STSのファイルメニューより、新規—Springスターター・プロジェクトを選択します。
新規Springスターター・プロジェクトの画面が表示されるので、名前をdemo3と入力しその他の設定はデフォルトを使うことにして次へのボタンを押します。
Thymeleafの設定
新規Springスターター・プロジェクト依存関係の画面が表示されます。
使用可能の欄にwebと入力して、表示された一覧からSpring WebとThymeleafの両方にチェックをつけて完了ボタンを押します。ここでThymeleafの使用を宣言することになります。
demo3プロジェクトの作成が完了しました。
パッケージ・エクスプローラービューにプロジェクトdemo3が追加されます。
コントローラークラスの作成
続いて新規にコントローラクラスを生成します。
パッケージ・エクスプローラーのビューでdemo3のプロジェクトを選択して、ファイルメニューより、新規—クラスを選択します。
Javaクラスの画面が表示されるので、名前を Hello2Controllerとして、完了ボタンを押します。
Hello2Contorollerのひな型が作成されました。
Contollerの実装
Spring Bootでは、テンプレート機能を利用する場合には、一般的にRestControllerクラスではなくControllerクラスを使います。
ここでもControllerクラスを用いることにして@Controllerアノテーションをつけます。
また、コントローラからテンプレートにデータを渡すためにデータ管理用のクラスModelクラスのaddAttributeメソッドを利用します。
本コードは、テンプレート側に“Greetings from Spring Boot!”というメッセージをわたす単純な処理となっています。
テンプレートファイルの生成
パッケージ・エクスプローラーのビューでdemo3のプロジェクトを選択して、ファイルメニューより、新規—その他を選択します。
ウイザード画面がでてきます。web配下のHTMLファイルを選択して次へボタンを押します。
テンプレートの名称と保存場所設定
新規HTMLファイル画面で、テンプレートを保存する親フォルダを次のように指定します。
また、テンプレートの名称をindex.htmlと指定します。
完了ボタンを押すと、テンプレートが作成されます。
テンプレートの編集
テンプレートでは、初期状態で最低限のHTMIタグが記述されてます。ここでは、index.htmlを次のように変更・追記します。
- <!DOCTYPE html>
- <html xmlns:th=”http://www.thymeleaf.org”>
- <head>
- <title>Hello2</title>
- <meta charset=”UTF-8″/>
- </head>
- <body>
- <p th:text=”${msg}”></p>
- </body>
- </html>
このテンプレートは、コントローラより渡される$msgを表示するだけの簡単な内容です。
通常のhtmlと異なる部分は、th:text属性、$msg変数が使われている部分になります。これで、demo3プロジェクトが完成しました。
アプリケーションの実行
パッケージエクスプローラーで、demo3(boot)を指定して、STSの実行(R)メニューより 実行(S) — Spring Boot App を選択します。
コンソールに実行状況のログが表示されます。
ブラウザで確認
ブラウザを開いて、URLにhttp://localhost:8080 を入力します。作成したWebアプリケーションの実行結果が次のように表示されます。
Webアプリケーションdemo3が正常に実行されてGreetings from Spring Boot!というメッセージが表示されました。
参考書について
Spring Bootの参考書籍について紹介します。
Spring Boot2 プログラム入門
著者:掌田津耶乃
発行元:秀和システム
2016年に前身となる「Spring Bootプログラミング入門」が出版され、本書は2018年1月に全面改訂して出版されたものです。
STS(Spring Tool Suite)をベースとしたWebアプリケーション開発方法がわかりやすく詳細に記述されていて、初めてSpring Bootで開発をする初心者におすすめです。
はじめてのSpring Boot(改訂版)
著者:槇俊明
発行元:工学社
概要:初版は当時日本では初めてと思われるSpring Bootの解説書として2014年に出版され、2016年にSpring Bootのバージョンアップを反映して本改訂版が出版されました。
Spring FrameworkにおけるSpring Bootの位置づけがわかりやすく説明されています。
アプリケーション作成方法がステップ・バイ・ステップで説明され、コードの説明も丁寧です。
まとめ
ここまで、Spring Bootの統合開発環境Spring Tool Suite(STS)を利用して簡単なWebアプリケーションを作成する3つの手法を紹介しました。
アプリケーションの内容は、いずれもメッセージを表示するだけの単純なものでしたが、ThymeleafテンプレートとControllerを組み合わせる手法はSpring Bootにおいて、最も使いやすく代表的なプロジェクト開発手法といえるでしょう。
今後の学習に活かしていただければ幸いです。
toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。