@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="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" スタイルの式は、指定されたパラメーターがリクエスト内に存在してはならないことを示します。
型レベルとメソッドレベルでサポートされています!型レベルで使用される場合、すべてのメソッドレベルのマッピングはこのパラメーターの制限を継承します(つまり、ハンドラーメソッドが解決される前に型レベルの制限がチェックされます)。
パラメーターマッピングは、型レベルで適用される制限と見なされます。プライマリパスマッピング(つまり、指定された 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/*"} 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
と照合する演算子。
型レベルとメソッドレベルでサポートされています!両方のレベルで指定した場合、メソッドレベルは条件を生成し、型レベルの条件をオーバーライドします。