EclipseによるSpring Boot①コントローラ

今回から、EclipesによるSpring Bootの連載を始めます。
①コントローラ(今回)
②Thymeleaf

Springに特化した開発環境である
Spring Tool Suite(STS)が有名です。

EcliplseのPleiadesでは、Spring Tool Suite(STS)、Thymeleafは含まれています。
なので、STSを別途ダウンロードする必要はなく、EclipseからSpring Boot
を使うことができます。とても便利ですね。

SpringBootとは? Springフレームワークは、いろいろなフレームワークからできています。
代表的なものが、Spring MVCです。
これは、WEBアプリを作るときに、M(Model:モデル)、V(View:画面)、C(Control:制御)に
棲み分けして作ることにより、処理が煩雑にならずに作成することができます。
SpringBootは、いろいろあるSpringフレームワーク群を上手く使えるようにしてくれます。
SpringBootのメリットとは? ・アノテーション機能が充実している。
・WEBサーバが組み込まれているので、デプロイが不要。
・設定ファイルは最小限。
手順 ①Springスタータープロジェクトの作成
②お試し起動
③ コントローラクラスの作成

①Springスタータープロジェクトの作成

メニューのファイル→新規→その他→Spring Boot→Spring スターター・プロジェクト(Spring Initializr)

タイプについてですが、Gradle-Groovyを選択しています。ビルドのタイプになります。
Gradle-Groovyを選択すると、ビルドファイルは、build.gradleになります。
Mavenを利用すると、pom.xmlがビルドファイルになります。

依存関係の設定です。使いたい機能を選択します。

以下、依存関係について説明します。

機能名説明
Spring Boot DevTools起動中にコードを編集した場合に自動反映するホットリロードの機能を提供する
Spring WebWebアプリケーションに必要な機能を提供する
lombok@Dataでクラスを作成するだけでgetter、setterを自動生成する
Thymeleaf画面の作成に使います。JSPでも作成は可能ですが、Spring Bootでは、Thymeleafを推奨。
MVCを意識すると、JSPでは、表示以外の処理もかけてしまうので、棲み分けできない可能性がある。
Thymeleafは、表示に関する処理しかけないので、MVCを意識した作りができる
H2 Database軽量DB、JavaVM上で動作するDB。軽量のためダウンロードもインストールも短時間で行えます
MyBatis FrameworkDBアクセス用のフレームワークです。ORM(Object Relational Mapping)機能を提供する

プロジェクト・エクスプローラーに以下のように自動生成します。

build.gradleファイルを開くと、依存関係を見ることができます。後から依存関係の追加や削除はここを編集すればできます。

②試し起動してみましょう。Bootダッシュボードから(再)起動を選択します。

コンソールを見ると起動しているようにみえます。

URLに、localhost:8080/demo/DemoApplicationと打つと、エラーページが表示します。

しかし、こうれは想定通りです。表示するページをまだ作成していないからです。

③コントロールクラスを作成

demo/src/main/javaに、HelloControllerでコントロールクラスを作成します。

実装は以下のようにします。

アノテーションの説明をします。
@RestControllerは、Webアプリケーションにおいて、リクエストを受け付けるコントローラーです。
コントローラーとは、MVCのCのコントローラーであり、制御を意味しています。
@GetMappingは、URLのパスに紐づけて呼ばれるメソッドです。
"Hello SpringBoot World!"をWebページに出力しています。

先ほどと同じように、Bootダッシュボートから再起動します。
URLに、Localhost:8080/demo/と打つと以下のページが表示します。

☆まとめ☆ SpringBootプロジェクトの作成の仕方、
コントローラの作成の仕方も学びました。
SpringBootの特徴も覚えておきましょう。
アノテーション機能によって、クラスの役割を簡潔に定義できるようになりました。
Strutsのときのように、アクションクラスと画面の紐づける設定ファイルは不要になりました。
プロジェクトとWebサーバの紐づけも不要になりました。
フレームワークによって、コード量を削減することができます。
これは、開発期間の短縮につながり大きなメリットになります。

Follow me!