@GetMapping
と@RequestMapping(method = RequestMethod.GET)
の違いは何ですか?
Spring Reactiveのいくつかの例で、@GetMapping
の代わりに@RequestMapping
が使われているのを見ました。
@GetMapping
は、@RequestMapping(method = RequestMethod.GET)
のショートカットとして機能する複合アノテーションです。
@GetMapping
は新しいアノテーションです。それは消費を支えます
消費オプションは次のとおりです。
= "text/plain"を消費します
= = "" text/plain "、" application/* "}を消費します
詳細については、 GetMapping Annotation を参照してください。
または読む: マッピングバリアントを要求する
RequestMappingは同様に消費をサポートします
ご覧のとおり こちら :
具体的には、
@GetMapping
は@RequestMapping(method = RequestMethod.GET)
のショートカットとして機能する合成アノテーションです。
@GetMapping
と@RequestMapping
の違い
@GetMapping
は、@RequestMapping
のようにconsumes
属性をサポートします。
@RequestMapping
はクラスレベルです
@GetMapping
はメソッドレベルです
スプリントスプリング付き4.3。そして物事は変わった。これで、httpリクエストを処理するメソッドに@GetMappingを使用できます。クラスレベルの@RequestMapping仕様は、(メソッドレベルの)@GetMappingアノテーションで洗練されています
これが一例です。
@Slf4j
@Controller
@RequestMapping("/orders")/* The @Request-Mapping annotation, when applied
at the class level, specifies the kind of requests
that this controller handles*/
public class OrderController {
@GetMapping("/current")/*@GetMapping paired with the classlevel
@RequestMapping, specifies that when an
HTTP GET request is received for /order,
orderForm() will be called to handle the request..*/
public String orderForm(Model model) {
model.addAttribute("order", new Order());
return "orderForm";
}
}
Spring 4.3より前は、@RequestMapping(method=RequestMethod.GET)
でした。
短い答え:
意味に違いはありません。
特に@GetMappingは@RequestMapping(method = RequestMethod.GET)のショートカットとして機能する合成アノテーションです。
参考文献:
RequestMapping
はクラスレベルで使用できます。
この注釈は、クラスとメソッドの両方のレベルで使用できます。ほとんどの場合、メソッドレベルでは、アプリケーションはHTTPメソッド固有の@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、または@PatchMappingのいずれかを使用することを好みます。
GetMapping
はmethodにのみ適用されます。
HTTP GETリクエストを特定のハンドラメソッドにマッピングするためのアノテーション。