@TargetSE(valueSE={METHODSE,TYPESE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface RequestMapping
このアノテーションが付けられたハンドラーメソッドは、非常に柔軟なシグネチャーを持つことができます。サポートされているメソッド引数と戻り値の正確な詳細は、サポートされている特定の @Controller
モデルによって異なります。Spring Web MVC と Spring WebFlux はどちらも、いくつかの違いはありますが、このアノテーションをサポートしています。詳細については、Spring Framework リファレンスを参照してください。
注 : @RequestMapping
は、適切な HandlerMapping
-HandlerAdapter
ペアが構成されている場合にのみ処理されます。カスタム HandlerMappings
または HandlerAdapters
を定義している場合は、構成に RequestMappingHandlerMapping
および RequestMappingHandlerAdapter
を追加する必要があります。
注 : コントローラーインターフェース(AOP プロキシなど)を使用する場合、@RequestMapping
や @SessionAttributes
などのすべてのマッピングアノテーションを、実装クラスではなくコントローラーインターフェースに一貫して配置するようにしてください。
GetMapping
, PostMapping
, PutMapping
, DeleteMapping
, PatchMapping
, RequestParam
, RequestAttribute
, PathVariable
, ModelAttribute
, SessionAttribute
, SessionAttributes
, InitBinder
, 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_NONE
public 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" などのコンテンツ型のリクエストに一致します。
型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのヘッダー制限を継承します(つまり、ハンドラーレベルが解決される前に型レベルの制限がチェックされます)。
MediaType
public 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 = "application/json; charset=UTF-8"
これは、書き込まれる実際のコンテンツ型に影響します。たとえば、UTF-8 エンコーディングで JSON レスポンスを生成するには、"application/json; charset=UTF-8"
を使用する必要があります。
"!" を使用すると、式を無効にすることができます。"!text/plain" のように、すべてのリクエストを "text/plain" 以外の Accept
と照合する演算子。
型レベルとメソッドレベルでサポートされています!型レベルで使用すると、すべてのメソッドレベルのマッピングがこれをオーバーライドし、制限が生じます。
MediaType