SpringBoot パラメータ取得

・リクエストパラメータ(クエリパラメータ、POSTパラメータ)の取得
value(name):パラメータ名
required:必須フラグ(デフォルトtrue)
defaultValue:デフォルト値

// http://localhost:8080/?id=1

// value省略(変数名がパラメータと一致していれば省略可能)
public String getUser(@RequestParam String id) {
    return id;
}

// value省略
public String getUser(@RequestParam("id") String id) {
    return id;
}

// value指定
public String getUser(@RequestParam(value="id") String id) {
    return id;
}

// 必須フラグ指定
public String getUser(@RequestParam(value="id", required=true) String id) {
    return id;
}

// デフォルト指定
public String getUser(@RequestParam(value="id", required=true, defaultValue="") String id) {
    return id;
}

// Optional
public String getUser(@RequestParam(value="id", required=false) Optional<String> id) {
    return id.orElse("");
}

・URLパスパラメータの取得
value(name):URLパスパラメータ名
required:必須フラグ(デフォルトtrue)

// http://localhost:8080/1

// value省略(変数名がURLパスパラメータと一致していれば省略可能)
@RequestMapping(value= {"/{id}"}, method=RequestMethod.GET)
@ResponseBody
public String getUser(@PathVariable String id) {
    return id;
}

// value省略
@RequestMapping(value= {"/{id}"}, method=RequestMethod.GET)
@ResponseBody
public String getUser(@PathVariable("id") String id) {
    return id;
}

// value指定
@RequestMapping(value= {"/{id}"}, method=RequestMethod.GET)
@ResponseBody
public String getUser(@PathVariable(value="id") String id) {
    return id;
}

// URLパスパラメータを必須としない場合、リクエストマッピングにURLパスパラメータを外したURLを追加する必要がある
@RequestMapping(value= {"/", "/{id}"}, method=RequestMethod.GET)
@ResponseBody
public String getUser(@PathVariable(value="id", required=false) String id) {
    return id;
}

・リクエストヘッダ
value(name):リクエストヘッダの項目名
required:必須フラグ(デフォルトtrue)
defaultValue:デフォルト値

// ex Mozilla/5.0~
@RequestMapping(value= {"/"}, method=RequestMethod.GET)
@ResponseBody
public String index(@RequestHeader("User-Agent") String userAgent) {
    return userAgent;
}

・リクエストボディ
required:必須フラグ(デフォルトtrue)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>User Setting</title>
</head>
<body>
    <form method="post" action="/body">
        <label for="name">名前:</label>
        <input type="text" name="name"><br>
        <label for="password">パスワード:</label>
        <input type="text" name="password">
        <input type="submit" value="送信" />
    </form>
</body>
</html>
// ex name=name&password=password
@RequestMapping(value= {"/body"}, method=RequestMethod.POST)
@ResponseBody
public String index(@RequestBody String body) {
    return body;
}