アノテーションインターフェース RequestMapping


@TargetSE({TYPESE,METHODSE}) @RetentionSE(RUNTIMESE) @DocumentedSE @Reflective(org.springframework.web.bind.annotation.ControllerMappingReflectiveProcessor.class) public @interface RequestMapping
Web リクエストを柔軟なメソッドシグネチャーを持つリクエスト処理クラスのメソッドにマッピングするためのアノテーション。

Spring MVCSpring WebFlux は両方とも、それぞれのモジュールとパッケージ構造の RequestMappingHandlerMapping と RequestMappingHandlerAdapter を通じてこのアノテーションをサポートします。サポートされているハンドラーメソッドの引数とそれぞれの戻り値の型の正確なリストについては、以下のリファレンスドキュメントのリンクを使用してください。

注意 : このアノテーションは、クラスレベルとメソッドレベルの両方で使用できます。ほとんどの場合、メソッドレベルのアプリケーションは、HTTP メソッド固有のバリアント @GetMapping@PostMapping@PutMapping@DeleteMapping@PatchMapping のいずれかを使用することを優先します。

注意 : このアノテーションは、同じ要素 (クラス、インターフェース、メソッド) で宣言されている他の @RequestMapping アノテーションと組み合わせて使用することはできません。同じ要素で複数の @RequestMapping アノテーションが検出された場合、警告がログに記録され、最初のマッピングのみが使用されます。これは、@GetMapping@PostMapping などの合成 @RequestMapping アノテーションにも当てはまります。

: コントローラーインターフェース(AOP プロキシなど)を使用する場合、 すべてのマッピングアノテーション(@RequestMapping や @SessionAttributes など)を、実装クラスではなくコントローラーインターフェースに一貫して配置してください。

導入:
2.5
作成者:
Juergen Hoeller, Arjen Poutsma, Sam Brannen
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    マッピングされたハンドラーが使用できるメディア型ごとにプライマリマッピングを絞り込みます。
    マッピングされたリクエストのヘッダー。プライマリマッピングを絞り込みます。
    プライマリマッピングを絞り込む HTTP リクエストメソッド: GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE。
    このマッピングに名前を割り当てます。
    マッピングされたリクエストのパラメーター。プライマリマッピングを絞り込みます。
    パスマッピング URI - たとえば、"/profile"
    マッピングされたハンドラーが生成できるメディア型によってプライマリマッピングを絞り込みます。
    パスマッピング URI - たとえば、"/profile"
  • 要素の詳細

    • name

      StringSE name
      このマッピングに名前を割り当てます。

      メソッドレベルだけでなく、型レベルでもサポートされています!両方のレベルで使用される場合、結合された名前は、区切り文字として "#" を使用した連結によって導出されます。

      関連事項:
      デフォルト:
      ""
    • value

      @AliasFor("path") StringSE[] value
      パスマッピング URI - たとえば、"/profile"

      これは path() のエイリアスです。例: @RequestMapping("/profile") は @RequestMapping(path="/profile") と同等です。

      詳細については、path() を参照してください。

      デフォルト:
      {}
    • path

      @AliasFor("value") StringSE[] path
      パスマッピング URI - たとえば、"/profile"

      Ant スタイルのパスパターンもサポートされています(例: "/profile/**")。メソッドレベルでは、型レベルで表現されたプライマリマッピング内で相対パス("edit" など)がサポートされます。パスマッピング URI にはプレースホルダーが含まれる場合があります(例: "/${profile_path}")。

      メソッドレベルだけでなく、型レベルでもサポートされています!型レベルで使用する場合、すべてのメソッドレベルのマッピングはこのプライマリマッピングを継承し、特定のハンドラーメソッドに絞り込みます。

      注意 : パスに明示的にマップされていないハンドラーメソッドは、空のパスに効果的にマップされます。

      導入:
      4.2
      デフォルト:
      {}
    • method

      RequestMethod[] method
      プライマリマッピングを絞り込む HTTP リクエストメソッド: GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE。

      型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこの HTTP メソッド制限を継承します。

      デフォルト:
      {}
    • params

      StringSE[] params
      マッピングされたリクエストのパラメーター。プライマリマッピングを絞り込みます。

      どの環境でも同じ形式: "myParam=myValue" スタイルの式のシーケンス。リクエストは、そのような各パラメーターが指定された値を持っていることが判明した場合にのみマップされます。"myParam!= myValue" のように、"!=" 演算子を使用して式を無効にすることができます。"myParam" スタイルの式もサポートされており、そのようなパラメーターはリクエストに存在する必要があります(任意の値を持つことができます)。最後に、"!myParam" スタイルの式は、指定されたパラメーターがリクエストに存在することを想定していないことを示します。

      型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのパラメーター制限を継承します。

      デフォルト:
      {}
    • headers

      StringSE[] headers
      マッピングされたリクエストのヘッダー。プライマリマッピングを絞り込みます。

      すべての環境で同じ形式: 一連の "My-Header = myValue" スタイル式。リクエストは、そのような各ヘッダーが指定された値を持つことが判明した場合にのみマップされます。"My-Header!= myValue" のように、"!=" 演算子を使用して式を否定できます。"My-Header" スタイルの式もサポートされており、そのようなヘッダーはリクエストに存在する必要があります(任意の値を持つことができます)。最後に、"!My-Header" スタイルの式は、指定されたヘッダーがリクエストに存在しないことを示しています。

      Accept や Content-Type などのヘッダーのメディア型ワイルドカード(*)もサポートします。例:

       @RequestMapping(value = "/something", headers = "content-type=text/*")
       
      "text/html","text/plain" などのコンテンツ型のリクエストに一致します。

      型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのヘッダー制限を継承します。

      関連事項:
      デフォルト:
      {}
    • consumes

      StringSE[] consumes
      マッピングされたハンドラーが使用できるメディア型によってプライマリマッピングを絞り込みます。1 つ以上のメディア型で構成され、その 1 つはリクエストの Content-Type ヘッダーと一致する必要があります。例:
       consumes = "text/plain"
       consumes = {"text/plain", "application/*"}
       consumes = MediaType.TEXT_PLAIN_VALUE
       

      宣言されたメディア型にパラメーターが含まれており、リクエストからの "content-type" にもそのパラメーターが含まれている場合、パラメーター値は一致する必要があります。それ以外の場合、リクエスト "content-type" からのメディア型にパラメーターが含まれていない場合、パラメーターは照合目的で無視されます。

      "!" を使用すると、式を無効にすることができます。"!text/plain" のように、すべてのリクエストを "text/plain" 以外の Content-Type と照合する演算子。

      型レベルとメソッドレベルでサポートされています!両方のレベルで指定した場合、メソッドレベルは条件を消費し、型レベルの条件をオーバーライドします。

      関連事項:
      デフォルト:
      {}
    • produces

      StringSE[] produces
      マップされたハンドラーによって生成できるメディア型によってプライマリマッピングを絞り込みます。1 つ以上のメディア型で構成され、その 1 つは、リクエストの「受け入れ可能な」メディア型に対するコンテンツネゴシエーションを介して選択する必要があります。通常、これらは "Accept" ヘッダーから抽出されますが、クエリパラメーターなどから派生する場合があります。例:
       produces = "text/plain"
       produces = {"text/plain", "application/*"}
       produces = MediaType.TEXT_PLAIN_VALUE
       produces = "text/plain;charset=UTF-8"
       

      宣言されたメディア型にパラメーター (例: "charset=UTF-8","type=feed","type=entry") が含まれ、リクエストからの互換性のあるメディア型にもそのパラメーターがある場合、パラメーター値は一致する必要があります。それ以外の場合、リクエストのメディア型にパラメーターが含まれていない場合、クライアントは任意の値を受け入れると見なされます。

      "!" を使用すると、式を無効にすることができます。"!text/plain" のように、すべてのリクエストを "text/plain" 以外の Accept と照合する演算子。

      型レベルとメソッドレベルでサポートされています!両方のレベルで指定した場合、メソッドレベルは条件を生成し、型レベルの条件をオーバーライドします。

      関連事項:
      デフォルト:
      {}