Spring BootのPostMappingとRequestParamの違いと使い分けを初心者向けに徹底解説!

こんにちは。ゆうせいです。

Web開発の現場でよく登場する @PostMapping@RequestParam
Spring BootなどでWeb APIをつくっていると必ず出てくるキーワードですね。でも、初学者のうちはこの2つが「何をしているのか」「なぜ必要なのか」がよく分からなくなることもあると思います。

そこで今回は、これらのアノテーションの意味と使いどころを、具体例や図を交えて丁寧に解説していきます!


@PostMappingとは?

Webアプリの「郵便ポスト」だと思ってください!

@PostMapping は、HTTP通信の「POSTリクエスト」に対応するメソッドを定義するときに使います。

POSTリクエストとは、ユーザーがフォームに入力したデータなどを、サーバーに「送信」するリクエストです。
たとえば、会員登録フォームで名前やメールアドレスを送るときがこれにあたります。

@PostMapping("/register")
public String registerUser(@RequestParam String name, @RequestParam String email) {
    // 処理内容
    return "success";
}

GETとPOSTの違いは?

HTTPメソッド主な用途URLにデータを含む?データサイズ制限
GET情報の取得はい(URLの後に)小さい
POSTデータの送信いいえ(本文に含む)大きいデータOK

@RequestParamとは?

「リクエストの中から特定の値を取り出す」ための道具です!

@RequestParam は、クライアントから送られてきたリクエストのパラメータ(名前付きの値)を、Javaメソッドの引数として受け取るために使います。

先ほどの例では、フォームから送られてくる nameemail の値を @RequestParam で受け取っていました。

@RequestParam String name

これは「リクエストの中にある name=〇〇 という値を、nameという引数に入れてください」という意味です。

たとえばURLでいうと…

POST /register?name=Yamada&email=yamada@example.com

このようなデータが送られてきたときに、@RequestParam を使えば nameemail をそれぞれ取り出すことができます。


なぜ @RequestParam が必要なのか?

明示的に「どこから値を取るのか」を指定するため!

Javaのメソッドは、ただ引数を書くだけではどこから値を取ればよいか分かりません。
「URLのパラメータから?」「本文のJSONから?」「ヘッダーから?」という疑問が生まれますよね。

そのため、@RequestParam をつけて、「URLやフォームのパラメータから値を取ります」と明示してあげる必要があるんです!


例え話:郵便ポストと手紙の宛名

  • @PostMapping → 郵便ポスト。「ここに手紙(データ)を入れてね!」というポストの役割。
  • @RequestParam → 手紙の宛名や内容。ポストの中から「誰から来た手紙か」「何が書いてあるか」を取り出すために必要な情報。

JSONでデータを送るときは?

ちなみに、JSON形式でデータを送る場合は @RequestParam の代わりに @RequestBody を使うことが多いです。

@PostMapping("/register")
public String registerUser(@RequestBody UserDto userDto) {
    // userDto.getName() や userDto.getEmail() でアクセス
    return "success";
}

このように、送信方法によって使うアノテーションが変わるのも重要なポイントです!


まとめ表

アノテーション役割主な使い方
@PostMappingPOSTリクエストを受け取るフォーム送信、登録処理など
@RequestParamパラメータを受け取るフォームやURLのクエリ文字列など
@RequestBodyJSONやXMLなどのリクエスト本文を受け取るAPIでのデータ送信など

今後の学習の指針

次のステップとしては以下のような学習をおすすめします。

  • @RequestBody と DTO(データ転送オブジェクト)の使い方
  • バリデーション(@Valid など)による入力チェック
  • GETメソッドとの使い分けとREST APIの設計

実際にコードを書きながら学んでみると、理解がどんどん深まりますよ!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。