【学び】Spring Boot ~アノテーション~
はじめに
職場でJavaを研修で学び、Spring Bootは使用せず、現在Javaの講師としてオブジェクト指向等に基礎を教えているが、「Spring Bootが使えないレベルでいたくない」「レベルアップしたい」という思いから勉強を開始 !!
後から見返す用のメモ程度にSpring Bootを使用する際の注意点や学びをまとめていこうと思う。
この記事が他のJavaを使い始めた方々にも役に立てれば嬉しいです。
アノテーションとは
「@」:アノテーションとよぶ。日本語で「注釈」という意味。
→ プログラムに関する補足情報を提供する
@Controller
…このクラスが、コントローラーであることを示す
@Controller
public class HelloController {
@RequestMapping
…HTTPリクエストを受け付ける
@RequestMapping("/")
public 戻り値 メソッド名() {
// hello.htmlを呼び出す
return "hello";
}
上のコードの場合、引数にルート("/")を指定したため、http://localhost :8080/ でアクセス可能。
return の文字列には、"hello" を記述することで、hello.html を呼び出せる。
GETやPOSTなどの集合体で、5種類のリクエスト(GET、POST、DELETE、PATCH)を受け取ることができる
クラスレベルとメソッドレベルの両方で使用できる
@Controller
@RequestMapping("/top") // クラスレベル
pubic class HomeCotroller {
@RequestMapping("/greeting") // メソッドレベル
public String greeting() {
上記のような記載の場合、http://localhost:8080/top/greetingでアクセスできる
※ ただし、メソッドレベルでは「@GetMapping」や「@PostMapping」などの使用が好まれる
@RequestParam
…リクエスト値(パラメータ)を取得する
デフォルトが必須(requierd = true)となっているため、値がないとエラーとなる。
※ 任意(required = false)にすると、パラメータなしで実行できる取得した値をThymeleafに渡すには、Model へ追加する。
これには、Modelクラスの addAttribute("名前", 値)を使用。
// ModelクラスのaddAttribute("名前", 値)を使用する
model/addAttribute("sample", message);
RequestParam()の引数は、name=名前となる
// 1
@RequestParam("message") String message
// 2
@RequestParam(name="message") String message
// 3(valueは昔の書き方)
@RequestParam(value="message") String message
変数は同一の場合、省略できる。以下の2つは同じ動作をする。
@RequestParam("message") String message
@RequestParam String message
デフォルト値の設定もできる。
@RequestParam(defaultVale="Hi!") String message
※ デフォルト値を設定した場合は、暗黙的に requirede=false が設定される
@PostMapping
…HTTPのPOSTリクエストを受け付ける
パスの指定方法は、"/confirm"など@GetMappingと同じ