@RequestMappingの使い方徹底解説!【初心者向け】

こんにちは!今回は、Spring Frameworkの重要なアノテーションである@RequestMappingについて徹底解説します。@RequestMappingは、リクエストとコントローラーメソッドの対応を簡単に設定できる便利なアノテーションです。基本的な使い方から応用的な使い方まで、幅広くカバーします!


@RequestMappingとは?

@RequestMappingは、Spring MVCにおいてリクエストのURLやHTTPメソッドに応じて、どのコントローラーメソッドが処理を行うかをマッピングするためのアノテーションです。

リクエストのURLやパス、メソッド、メディアタイプに応じて、コントローラーが適切にリクエストを処理できるようになります。柔軟で汎用性が高く、WebアプリケーションやREST APIの開発に欠かせない存在です。


基本的な使い方

まずは@RequestMappingの基本的な使い方を見てみましょう。以下は、HTTP GETリクエストを処理するシンプルなコード例です。

@RequestMapping("/hello")
public String sayHello() {
    return "Hello, World!";
}

このコードでは、URLが/helloのリクエストが来た際にHello, World!というメッセージを返す仕組みです。


@RequestMappingの使い方【応用編】

1. HTTPメソッドを指定する

@RequestMappingでは、特定のHTTPメソッド(GET, POST, PUT, DELETEなど)を指定して、処理を分岐させることができます。例えば、GETメソッドのみを処理したい場合は、以下のようにします。

@RequestMapping(value = "/users", method = RequestMethod.GET)
public List<User> getAllUsers() {
    return userService.findAll();
}

2. URLパスに変数を使う

URLの一部を変数として扱い、動的にリクエストを処理することができます。たとえば、ユーザーIDに基づいてユーザー情報を取得する場合:

@RequestMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
    return userService.findById(id);
}

3. クエリパラメータの利用

リクエストにクエリパラメータが含まれている場合、その値を取得して処理することもできます。

@RequestMapping("/search")
public List<User> searchUsers(@RequestParam String name) {
    return userService.searchByName(name);
}

4. マルチパートリクエストの対応

ファイルアップロードなどのマルチパートリクエストにも対応可能です。

@RequestMapping(value = "/upload", method = RequestMethod.POST, consumes = "multipart/form-data")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
    return fileService.saveFile(file);
}

5. リクエストとレスポンスのメディアタイプを制御する

@RequestMappingでは、リクエストやレスポンスのメディアタイプを指定することができます。

@RequestMapping(value = "/users/{id}", produces = "application/json")
@ResponseBody
public User getUserJson(@PathVariable Long id) {
    return userService.findById(id);
}

@RequestMappingの引数

1. value属性

value属性では、リクエストURLを指定します。これは必須の属性です。

@RequestMapping(value = "/home")
public String homePage() {
    return "home";
}

2. method属性

method属性を使って、HTTPメソッドを指定します。

@RequestMapping(value = "/submit", method = RequestMethod.POST)
public String submitForm() {
    return "form submitted";
}

3. consumes属性

consumes属性で、受け入れるメディアタイプを指定できます。

@RequestMapping(value = "/json", consumes = "application/json")
public String handleJsonRequest(@RequestBody User user) {
    return "Received JSON";
}

4. produces属性

produces属性では、レスポンスのメディアタイプを指定できます。

@RequestMapping(value = "/xml", produces = "application/xml")
@ResponseBody
public User getUserXml(@PathVariable Long id) {
    return userService.findById(id);
}

おわりに

@RequestMappingは、Spring MVCでのリクエスト処理において非常に強力なアノテーションです。今回の記事では、基本的な使い方から応用的なテクニックまで幅広く紹介しました。実際にコードを書いて、さまざまなリクエストに対応できるアプリケーションを構築してみてください!

もっと詳しく知りたい方は、Spring公式ドキュメントを見てみてくださいね。

他のMappingアノテーションについて知りたい方はこちらもどうぞ!↓↓↓↓

タイトルとURLをコピーしました