@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
修飾子と型 | オプションの要素と説明 |
---|---|
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="path") public abstract StringSE[] value
これは path()
のエイリアスです。例: @RequestMapping("/foo")
は @RequestMapping(path="/foo")
と同等です。
メソッドレベルだけでなく、型レベルでもサポートされています!型レベルで使用する場合、すべてのメソッドレベルのマッピングはこのプライマリマッピングを継承し、特定のハンドラーメソッドに絞り込みます。
注意 : パスに明示的にマップされていないハンドラーメソッドは、空のパスに効果的にマップされます。
@AliasFor(value="value") public abstract StringSE[] path
"/profile"
)。Ant スタイルのパスパターンもサポートされています(例: "/profile/**"
)。メソッドレベルでは、型レベルで表現されたプライマリマッピング内で相対パス("edit"
など)がサポートされます。パスマッピング URI にはプレースホルダーが含まれる場合があります(例: "/${profile_path}"
)。
メソッドレベルだけでなく、型レベルでもサポートされています!型レベルで使用する場合、すべてのメソッドレベルのマッピングはこのプライマリマッピングを継承し、特定のハンドラーメソッドに絞り込みます。
注意 : パスに明示的にマップされていないハンドラーメソッドは、空のパスに効果的にマップされます。
public abstract RequestMethod[] method
型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこの HTTP メソッド制限を継承します。
public abstract StringSE[] params
すべての環境で同じ形式: 「myParam = myValue」スタイルの式のシーケンス。そのような各パラメーターが指定された値を持つことがわかった場合にのみリクエストがマップされます。「myParam!= myValue」のように、「!=」演算子を使用して式を否定できます。「myParam」スタイルの式もサポートされており、そのようなパラメーターはリクエストに存在する必要があります(任意の値を持つことができます)。最後に、「!myParam」スタイルの式は、指定されたパラメーターがリクエストに存在しないことになっていることを示します。
型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのパラメーター制限を継承します。
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/*"} consumes = MediaType.TEXT_PLAIN_VALUE「!」を使用すると、式を無効にすることができます。「!text/plain」のように、すべてのリクエストを "text/plain" 以外の
Content-Type
と照合する演算子。型レベルとメソッドレベルでサポートされています!両方のレベルで指定した場合、メソッドレベルは条件を消費し、型レベルの条件をオーバーライドします。
public abstract StringSE[] produces
"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
と照合する演算子。
型レベルとメソッドレベルでサポートされています!両方のレベルで指定した場合、メソッドレベルは条件を生成し、型レベルの条件をオーバーライドします。
MediaType