Spring BootとはSpring Frameworkベースのアプリケーションを手軽に作成することができるフレームワークである。
Javaのフレームワークには様々な種類があるが、そのうちSpring Frameworkはフレームワークの中でも多くのエンジニアによって支持されているフレームワークのひとつだ。早速だが、SpringBootの特徴をいくつか紹介してゆこう。
目次
- 1 SpringBootの特徴
- 2 SpringBootの開発に適したIDEは?
- 3 STSのダウンロードとインストール
- 4 STSの日本語化
- 5 SpringBootを使ってみよう
- 5.1 1.新規Springスタータープロジェクトの作成
- 5.2 2.新規Springスタータープロジェクト
- 5.3 3.新規Springスタータープロジェクト依存関係
- 5.4 4.新規Springスタータープロジェクト
- 5.5 5.プロジェクト作成完了
- 5.6 6.新規コントローラークラスの作成
- 5.7 7.新規コントローラークラスの設定
- 5.8 8.コントローラークラスの編集
- 5.9 9.入力画面テンプレートの追加
- 5.10 10.HTMLを選択
- 5.11 11.テンプレートのファイル名を設定
- 5.12 12.HTMLテンプレートの選択
- 5.13 13.入力結果画面テンプレートの追加
- 5.14 14.index.htmlの編集
- 5.15 15.result.htmlの編集
- 5.16 16.アプリケーションの実行
- 5.17 17.ブラウザからアクセス
- 5.18 18.入力結果画面の表示
SpringBootの特徴
XML設定ファイルの記述が不要
Spring FrameworkはXML形式の設定ファイルを定義することにより設定を外部化することができるが、Spring Frameworkではこの設定ファイルの設定の煩雑さがしばしば指摘されている。Spring Bootではこの設定ファイルの複雑さをできる限り排除しており、必要最低限の設定を行うだけでアプリケーションの起動・実行を行うことができる。
コーディング量の削減
アノテーションを記述することにより機能を実装することが可能なため、コーディング量が削減されるのも特徴だ。アノテーション(annotation)とは「注釈」の意味で、記述することで特定の意味をつけるものだ。
Javadocを学習したことがあるなら馴染みの深い言葉だろう。Javadocでもアノテーションを記述してドキュメントの生成を行なっている。
Webコンテナを内含
Webコンテナをjar(Java ARchive)ファイルに含めることが可能で、jarファイル単体でWebアプリケーションの作成が可能だ。Spring BootではデフォルトでTomcatコンテナを含んでいる。
この他にも様々な特徴があるが、細々と設定しながらアプリケーションを開発するのではなく、ある程度開発に必要なものをあらかじめ設定し、スピーディな開発を行うことができるSpringBootの機能はエンジニアにとっては嬉しい機能だ。
SpringBootの開発に適したIDEは?
SpringBootでの開発を行うには「Spring Tool Suite(STS)」を利用するのが最も手軽な方法だ。STSはSpring Framwrowkの開発元が提供しているEclipseをベースとして作成された統合開発環境(IDE)で、Spring Frameworkを利用した開発に適した機能が備えられている。
デファクトスタンダートと言っても過言ではないEclipse以外のIDEを使うことに抵抗を感じるかも知れないが、STSはEclipseをベースとしているだけあって基本的な操作はEclipseとほぼ同じといってもいい。Eclipseを使ったことがあるならば、抵抗なくSTSの操作を行えることだろう。
STSのダウンロードとインストール
それでは、STSのダウンロードとインストールしてみよう。ここではWindows10環境へのダウンロードとインストール方法を紹介する。
1.公式サイトからSTSをダウンロード
出典:Spring
STSのダウンロードページにアクセスし、Windows版を選択してダウンロードしよう。
32bit版、64bit版が選択できるので、現在使用している環境に合ったSTSをダウンロードしよう。
2.ダウンロードファイルを解凍
ダウンロードしたzipファイルを任意のパスに解凍する。この例では、zipファイルに含まれていた「sts-bundle」フォルダを「c:\sts\sts-bundle」に解凍した。
3.STSを起動する
解凍したzipファイルに含まれている「STS.exe」を起動しよう。この例では「C:\sts\sts-bundle\sts-3.9.3.RELEASE\STS.exe」のファイルを起動する。
4.セキュリティ警告が表示される場合
STS.exeを起動してセキュリティ警告が出た場合は「実行(R)」を選択して起動を継続しよう。
5.ワークスペースの選択
Eclipseと同様、STSで開発するワークススペースを指定する。ワークスペースとはプログラムを生成するフォルダと考えてもらっていいだろう。この例では「C:\sts\workspace」を指定したが、任意のフォルダで問題ない。
フォルダを指定したら「Launch」ボタンをクリックしよう。
6.STS起動
STSが起動される。ただし、現在の状態では英語表示になっている。
STSの日本語化
STSはデフォルトでは英語表示であるが、日本語化しておいた方が扱いやすいので日本語化方法を紹介しよう。
1.Pleiades日本語化プラグインのダウンロード
STSはEclipseベースに開発されたIDEであるため、Eclipseを日本語化するPleiades日本語化プラグインで日本語化することができる。MargeDocProjectのサイトにアクセスし、「Pleiades プラグイン・ダウンロード」よりプラグインを入手しよう。
2.プラグインフォルダを上書き
ダウンロードしたファイルを任意の場所に解凍し、「features」「plugins」フォルダをSTSのインストールフォルダに上書きする。先ほどインストールしたフォルダの例で説明すると、以下のフォルダに上書きすることとなる。
featuresフォルダの上書き先:C:\sts\sts-bundle\sts-3.9.3.RELEASE\features
pluginsフォルダの上書き先:C:\sts\sts-bundle\sts-3.9.3.RELEASE\plugins
3.STS.iniの編集
STSをインストールしたフォルダのSTS.iniファイルを編集する。先ほどインストールしたフォルダの例であれば、以下のフォルダにSTS.iniがある。
C:\sts\sts-bundle\sts-3.9.3.RELEASE
テキストエディタでSTS.iniファイルを開き、ファイルの最終行に以下の2行を追加して保存しよう。
1 2 |
-Xverify:none -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar |
ちなみに、既にSTS.iniに「-Xverify:none」が定義されている場合、この行の追加は不要だ。
最終的にSTS.iniの設定は以下のようになった。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
-startup plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.551.v20171108-1834 -product org.springsource.sts.ide --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.8 --add-modules=ALL-SYSTEM -Xms40m -Dosgi.module.lock.timeout=10 -Dorg.eclipse.swt.browser.IEVersion=10001 -Xmx768m -Xverify:none -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar |
4.STSを起動
STSを起動すると、日本語化された状態で表示された。これでSTSの日本語化は完了だ。
SpringBootを使ってみよう
STSのインストールおよび日本語化が済んだところで、実際にSpringBootで簡単なプログラムを作ってみよう。
今回紹介するサンプルは画面遷移を含んだWebシステムだ。入力画面と入力結果を表示する結果表示画面の2画面構成で、入力画面で名前を入力して送信ボタンを押すと、入力した名前を結果表示画面に表示するというシンプルな機能とする。
画面の表示には「Thymeleaf(タイムリーフ)」と呼ばれるテンプレートエンジンを使用する。テンプレートエンジンとはWebシステムでHTMLを表示する際にテンプレート化したHTMLを表示する機能を備えたものだ。SpringBootではこのThymeleafの使用が推奨されているため、SpringBootを習得するにあたってはThymeleafも覚えておいた方がいいだろう。
1.新規Springスタータープロジェクトの作成
STSを起動して、スタータープロジェクトを作成しよう。メニューの「ファイル(F)」→「新規(N)」→「Springスターター・プロジェクト」を選択する。
2.新規Springスタータープロジェクト
名前に「helloSpringBootWeb」と入力し、「次へ(N)>」ボタンをクリックしよう。
3.新規Springスタータープロジェクト依存関係
依存関係の設ダイアログが項目別にツリー表示される。ツリーの「テンプレートエンジン」から「Thymeleaf」を、ツリーの「Web」からは「Web」をそれぞれチェックして「次へ(N)>」ボタンをクリックしよう。
4.新規Springスタータープロジェクト
この画面は特に変更せず、「完了(F)」ボタンをクリックして設定完了だ。
5.プロジェクト作成完了
プロジェクトが作成され、STSのパッケージ・エクスプローラーに「helloSpringBootWeb」が表示された。
6.新規コントローラークラスの作成
プロジェクトを右クリックし、「新規(W)」→「クラス」をクリックしよう。
7.新規コントローラークラスの設定
名前に「HelloSpringBootWebController」と入力し、「完了(F)」ボタンをクリックする。
8.コントローラークラスの編集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; @Controller public class HelloSpringBootWebController { @RequestMapping(value="/", method=RequestMethod.GET) public ModelAndView index(ModelAndView mv) { mv.setViewName("index"); return mv; } @RequestMapping(value="/result", method=RequestMethod.POST) public ModelAndView send(@RequestParam("inputvalue")String inputvalue, ModelAndView mv) { mv.setViewName("result"); mv.addObject("message", inputvalue); return mv; } } |
コントローラークラスであるHelloSpringBootWebController.javaを開いて上記の通り編集する。
コントローラークラスとは簡単に言うと、リクエストに対してどの画面を表示するかを管理するものだ。このクラスでは最初に表示した名前を入力する画面と、入力結果を表示する画面についての処理を設定している。
9.入力画面テンプレートの追加
実際に表示する画面のテンプレートを作成しよう。パッケージ・エクスプローラーの「src/main/resource」にある「templates」を右クリックし、「新規(W)」→「その他」をクリックする。
10.HTMLを選択
作成対象を選択するダイアログが表示される。ツリーにある「Web」から「HTMLファイル」を選択して「次へ(N)>」ボタンをクリックしよう。
11.テンプレートのファイル名を設定
テンプレートのファイル名に「index.html」と入力し、「次へ(N)>」ボタンをクリックしよう。
12.HTMLテンプレートの選択
「新規HTMLファイル(5)」がデフォルトで選択されているので、そのまま「完了(F)>」ボタンをクリックしよう。
13.入力結果画面テンプレートの追加
9~12と同じ方法でさらにもう1つテンプレートを作成する。ファイル名は「result.html」としよう。
14.index.htmlの編集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Hello Page</title> </head> <body> <form method="post" action="/result"> 名前を入力してください<br> <input type="text" name="inputvalue"/> <input type="submit" value="送信" /> </form> </body> </html> |
入力画面のテンプレートページを作成する。エディタでindex.htmlに上記のコードを記入しよう。
15.result.htmlの編集
1 2 3 4 5 6 7 8 9 10 11 |
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Hello Page2</title> </head> <body> 入力した値はこちらです! <p th:text="${message}"></p> </body> </html> |
入力結果画面のテンプレートページを作成する。エディタでresult.htmlに上記のコードを記入しよう。
16.アプリケーションの実行
パッケージ・エクスプローラーの「helloSpringBootWeb」を右クリックし、「実行(R)」→「SpringBootアプリケーション」をクリックしよう。
実行するとコンソールに実行ログが表示される。
17.ブラウザからアクセス
ブラウザを起動し、URLに「http://localhost:8080」と入力すると、作成したアプリケーションの画面が表示される。
名前を入力して送信ボタンをクリックしてみよう。
18.入力結果画面の表示
入力した内容が結果画面に表示された。プログラムは意図した通りに動作しているのがわかる。
まとめ
このページではSTSを使って簡単なプロジェクトを作成する方法を紹介した。これを基本として様々なプログラムの構築に挑戦してほしい。
ブラウザを起動し、URLに「http://localhost:8080」入力すると、以下の画面が表示されます。
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Apr 13 00:15:59 GMT+09:00 2020
There was an unexpected error (type=Not Found, status=404).
No message available
コメントありがとうございます。
コメントいただいたエラーは404エラーと呼ばれ、指定されたURLが存在しませんという内容です。
URLの指定はコントローラクラスの@RequestMappingで行っています。
以下の箇所をご確認下さいませ。
8.コントローラークラスの編集にあるプログラムの10行目の箇所が正しくない可能性があります。
@RequestMapping(value="/", method=RequestMethod.GET)
記述内容が問題ないかをご確認下さいませ。