アノテーションインターフェース 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"
。
要素の詳細
name
StringSE nameこのマッピングに名前を割り当てます。メソッドレベルだけでなく、型レベルでもサポートされています!両方のレベルで使用される場合、結合された名前は、区切り文字として "#" を使用した連結によって導出されます。
- デフォルト:
- ""
value
パスマッピング URI - たとえば、"/profile"
。これは
path()
のエイリアスです。例:@RequestMapping("/profile")
は@RequestMapping(path="/profile")
と同等です。詳細については、
path()
を参照してください。- デフォルト:
- {}
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
と照合する演算子。型レベルとメソッドレベルでサポートされています!両方のレベルで指定した場合、メソッドレベルは条件を生成し、型レベルの条件をオーバーライドします。
- 関連事項:
- デフォルト:
- {}