@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface RequestMapping
Spring MVC と Spring の両方 WebFlux は、それぞれのモジュールとパッケージ構造で RequestMappingHandlerMapping と RequestMappingHandlerAdapter を介してこのアノテーションをサポートします。サポートされているハンドラーメソッドの引数とそれぞれの戻り値の型の正確なリストについては、以下のリファレンスドキュメントのリンクを使用してください。
注意 : このアノテーションは、クラスレベルとメソッドレベルの両方で使用できます。ほとんどの場合、メソッドレベルのアプリケーションは、HTTP メソッド固有のバリアント @GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping のいずれかを使用することを優先します。
注 : コントローラーインターフェース(AOP プロキシなど)を使用する場合、@RequestMapping や @SessionAttributes などのすべてのマッピングアノテーションを、実装クラスではなくコントローラーインターフェースに一貫して配置するようにしてください。
GetMapping, PostMapping, PutMapping, DeleteMapping, PatchMapping, RequestMappingHandlerAdapter, RequestMappingHandlerAdapter| 修飾子と型 | オプションの要素と説明 |
|---|---|
StringSE[] | consumes マッピングされたリクエストの消費可能なメディア型。プライマリマッピングを絞り込みます。 |
StringSE[] | headers マッピングされたリクエストのヘッダー。プライマリマッピングを絞り込みます。 |
RequestMethod[] | method プライマリマッピングを絞り込む HTTP リクエストメソッド: GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE。 |
StringSE | name このマッピングに名前を割り当てます。 |
StringSE[] | params マッピングされたリクエストのパラメーター。プライマリマッピングを絞り込みます。 |
StringSE[] | path パスマッピング URI(例: |
StringSE[] | produces マッピングされたリクエストの生成可能なメディア型。プライマリマッピングを絞り込みます。 |
StringSE[] | value このアノテーションによって表されるプライマリマッピング。 |
public abstract StringSE name
メソッドレベルだけでなく、型レベルでもサポートされています!両方のレベルで使用される場合、結合された名前は、区切り文字として "#" を使用した連結によって導出されます。
@AliasFor(value="value") public abstract StringSE[] path
メソッドレベルだけでなく、型レベルでもサポートされています!型レベルで使用する場合、すべてのメソッドレベルのマッピングはこのプライマリマッピングを継承し、特定のハンドラーメソッドに絞り込みます。
ValueConstants.DEFAULT_NONEpublic abstract RequestMethod[] method
メソッドレベルだけでなく、型レベルでもサポートされています!型レベルで使用すると、すべてのメソッドレベルのマッピングはこの HTTP メソッドの制限を継承します(つまり、ハンドラーメソッドが解決される前に型レベルの制限がチェックされます)。
public abstract StringSE[] params
どの環境に対しても同じ形式です。"myParam=myValue" スタイルの式のシーケンスで、各パラメーターに指定された値がある場合にのみリクエストがマップされます。式は、"!=" 演算子を使用して否定できます ( "myParam!=myValue" など)。"myParam" スタイルの式もサポートされていますが、このようなパラメーターはリクエスト内に存在する必要があります (任意の値を持つことができます)。最後に、"!myParam" スタイルの式は、指定されたパラメーターがリクエスト内に存在してはならないことを示します。
型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのパラメーターの制限を継承します(つまり、ハンドラーメソッドが解決される前に型レベルの制限がチェックされます)。
パラメーターマッピングは、型レベルで適用される制限と見なされます。プライマリパスマッピング(つまり、指定された URI 値)は、ターゲットハンドラーを一意に識別する必要があり、パラメーターマッピングは、ハンドラーを呼び出すための前提条件を単に表現するだけです。
public abstract 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" などのコンテンツ型のリクエストに一致します。
型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのヘッダー制限を継承します(つまり、ハンドラーレベルが解決される前に型レベルの制限がチェックされます)。
MediaTypepublic abstract StringSE[] consumes
形式は単一のメディア型またはメディア型のシーケンスであり、Content-Type がこれらのメディア型のいずれかに一致する場合にのみリクエストがマッピングされます。例:
consumes = "text/plain"
consumes = {"text/plain", "application/*"}
"!" を使用すると、式を無効にすることができます。"!text/plain" のように、すべてのリクエストを "text/plain" 以外の Content-Type と照合する演算子。型レベルとメソッドレベルでサポートされています!型レベルで使用すると、すべてのメソッドレベルのマッピングがこれを上書きし、制限を消費します。
public abstract StringSE[] produces
形式は単一のメディア型またはメディア型のシーケンスであり、Accept がこれらのメディア型のいずれかに一致する場合にのみリクエストがマッピングされます。例:
produces = "text/plain"
produces = {"text/plain", "application/*"}
produces = MediaType.APPLICATION_JSON_UTF8_VALUE
書き込まれる実際のコンテンツ型に影響します。たとえば、UTF-8 エンコーディングで JSON レスポンスを生成するには、MediaType.APPLICATION_JSON_UTF8_VALUE を使用する必要があります。
"!" を使用すると、式を無効にすることができます。"!text/plain" のように、すべてのリクエストを "text/plain" 以外の Accept と照合する演算子。
型レベルとメソッドレベルでサポートされています!型レベルで使用すると、すべてのメソッドレベルのマッピングがこれをオーバーライドし、制限が生じます。
MediaType