アノテーションインターフェース RequestMapping
Spring MVC と Spring 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
- 関連事項:
- オプション要素の概要オプション要素修飾子と型オプションの要素説明- StringSE[]マッピングされたハンドラーが使用できるメディア型ごとにプライマリマッピングを絞り込みます。- StringSE[]マッピングされたリクエストのヘッダー。プライマリマッピングを絞り込みます。プライマリマッピングを絞り込む HTTP リクエストメソッド: GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE。このマッピングに名前を割り当てます。- StringSE[]マッピングされたリクエストのパラメーター。プライマリマッピングを絞り込みます。- StringSE[]パスマッピング URI - たとえば、- "/profile"。- StringSE[]マッピングされたハンドラーが生成できるメディア型によってプライマリマッピングを絞り込みます。- StringSE[]パスマッピング URI - たとえば、- "/profile"。
- 要素の詳細- nameStringSE nameこのマッピングに名前を割り当てます。- メソッドレベルだけでなく、型レベルでもサポートされています!両方のレベルで使用される場合、結合された名前は、区切り文字として "#" を使用した連結によって導出されます。 - デフォルト:
- ""
 
- valueパスマッピング URI - たとえば、- "/profile"。- これは - path()のエイリアスです。例:- @RequestMapping("/profile")は- @RequestMapping(path="/profile")と同等です。- 詳細については、 - path()を参照してください。- デフォルト:
- {}
 
- pathパスマッピング URI - たとえば、- "/profile"。- Ant スタイルのパスパターンもサポートされています(例: - "/profile/**")。メソッドレベルでは、型レベルで表現されたプライマリマッピング内で相対パス(- "edit"など)がサポートされます。パスマッピング URI にはプレースホルダーが含まれる場合があります(例:- "/${profile_path}")。- メソッドレベルだけでなく、型レベルでもサポートされています!型レベルで使用する場合、すべてのメソッドレベルのマッピングはこのプライマリマッピングを継承し、特定のハンドラーメソッドに絞り込みます。 - 注意 : パスに明示的にマップされていないハンドラーメソッドは、空のパスに効果的にマップされます。 - 導入:
- 4.2
 - デフォルト:
- {}
 
- methodRequestMethod[] methodプライマリマッピングを絞り込む HTTP リクエストメソッド: GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE。- 型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこの HTTP メソッド制限を継承します。 - デフォルト:
- {}
 
- paramsStringSE[] paramsマッピングされたリクエストのパラメーター。プライマリマッピングを絞り込みます。- どの環境に対しても同じ形式です。"myParam=myValue" スタイルの式のシーケンスで、各パラメーターに指定された値がある場合にのみリクエストがマップされます。式は、"!=" 演算子を使用して否定できます ( "myParam!=myValue" など)。"myParam" スタイルの式もサポートされていますが、このようなパラメーターはリクエスト内に存在する必要があります (任意の値を持つことができます)。最後に、"!myParam" スタイルの式は、指定されたパラメーターがリクエスト内に存在してはならないことを示します。 - 型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのパラメーター制限を継承します。 - デフォルト:
- {}
 
- headersStringSE[] 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" などのコンテンツ型のリクエストに一致します。- 型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのヘッダー制限を継承します。 - 関連事項:
 - デフォルト:
- {}
 
- consumesStringSE[] 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と照合する演算子。- 型レベルとメソッドレベルでサポートされています!両方のレベルで指定した場合、メソッドレベルは条件を消費し、型レベルの条件をオーバーライドします。 - デフォルト:
- {}
 
- producesStringSE[] 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と照合する演算子。- 型レベルとメソッドレベルでサポートされています!両方のレベルで指定した場合、メソッドレベルは条件を生成し、型レベルの条件をオーバーライドします。 - 関連事項:
 - デフォルト:
- {}