web-dev-qa-db-ja.com

アノテーション@GetMappingと@RequestMappingの違い(method = RequestMethod.GET)

@GetMapping@RequestMapping(method = RequestMethod.GET)の違いは何ですか?
Spring Reactiveのいくつかの例で、@GetMappingの代わりに@RequestMappingが使われているのを見ました。

112
nowszy94

@GetMappingは、@RequestMapping(method = RequestMethod.GET)のショートカットとして機能する複合アノテーションです。

@GetMappingは新しいアノテーションです。それは消費を支えます

消費オプションは次のとおりです。

= "text/plain"を消費します
= = "" text/plain "、" application/* "}を消費します

詳細については、 GetMapping Annotation を参照してください。

または読む: マッピングバリアントを要求する

RequestMappingは同様に消費をサポートします

153
dhS

ご覧のとおり こちら

具体的には、@GetMapping@RequestMapping(method = RequestMethod.GET)のショートカットとして機能する合成アノテーションです。

@GetMapping@RequestMappingの違い

@GetMappingは、@RequestMappingのようにconsumes属性をサポートします。

20
Deroude

@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)でした。

Craig Wallsによって書かれた本からの追加読書Extra reading from a book authored by Craig Walls

5
zee

短い答え:

意味に違いはありません。

特に@GetMappingは@RequestMapping(method = RequestMethod.GET)のショートカットとして機能する合成アノテーションです。

参考文献:

RequestMappingはクラスレベルで使用できます。

この注釈は、クラスとメソッドの両方のレベルで使用できます。ほとんどの場合、メソッドレベルでは、アプリケーションはHTTPメソッド固有の@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、または@PatchMappingのいずれかを使用することを好みます。

GetMappingはmethodにのみ適用されます。

HTTP GETリクエストを特定のハンドラメソッドにマッピングするためのアノテーション。


https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/GetMapping.html

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html

0
ZhaoGang