本日はアノテーションについてです。
ここでは平易な言い回しで最低限の知識を簡潔に説明することと、私自身の頭の中の整理することを目標および目的として進めていきます。
まず、アノテーションの前に必要な知識があるので抑えておきましょう。
JavaによるWebアプリケーションの仕組みについてです。
Webアプリケーションは3つのパーツに分けて考えることができます。
その3つとは「モデル」、「ビュー」、「コントローラ」です。
それぞれの役割は以下になります。
1、「モデル」
⇒アプリケーションで使用するデータを保持する部分
2、「ビュー」
⇒ユーザーによって利用されるユーザーインターフェースの部分
3、「コントローラ」
⇒ユーザーインターフェース(Webページ)から送られてくるリクエストを処理する部分
この3つを組み合わせるような構成や仕組みを「MVCモデル」と呼ばれることがあります。MVCは3つの頭文字を取ったものです。
※リクエスト、レスポンスとは・・・
このサイトがわかりやすいです
https://wa3.i-3-i.info/word1841.html
簡潔に知りたいならこのサイトです
「HTTPリクエスト」と「HTTPレスポンス」 | ITSakura
※Webアプリにおけるユーザーインターフェースとは・・・
⇒Webブラウザで表示するWebページにあたります。
さて、ここからが本題です。@RestControllerについてです。
先程も説明しましたが、コントローラは「Webページから送られてくるHTTPリクエストを処理する部分」になります。
■コントローラは何種類あるのか
よく使われるコントローラは2種類あります。
@RestController
@Controller
■コントローラはどこに書くのか、何をしているのか
このアノテーションはクラスに対して付けます。
これによってSpring Bootが「このクラスはコントローラです」と判断することができ、HTTPに関する様々な処理を自動で行ってくれます。
■2種類の違いは何か
通常は@RestControllerはユーザーインターフェースとしてのHTMLを返さないWebアプリケーションを作る場合に使われます。具体的にはHTTPレスポンスとして文字列をそののまま返す場合です。
@ControllerはHTMLを返したい場合に使用します。
具体的には、レスポンスとしてサーバー側のプログラム内でWebコンテンツを生成して返すことになります。