@GetMapping ve @RequestMapping ek açıklamaları arasındaki fark (method = RequestMethod.GET)


152

Arasındaki fark nedir @GetMappingve @RequestMapping(method = RequestMethod.GET)?
Bazı Spring Reactive örneklerinde gördüm, @GetMappingbunun yerine@RequestMapping

Yanıtlar:


195

@GetMappingkısayol olarak işlev gören oluşturulmuş bir ek açıklamadır @RequestMapping(method = RequestMethod.GET).

@GetMappingdaha yeni ek açıklamadır. Tüketimi destekler

Tüketim seçenekleri:

tüketir = "metin / düz"
tüketir = {"metin / düz", "uygulama / *"}

Daha fazla ayrıntı için bakınız: GetMapping Ek Açıklaması

veya oku: eşleme varyantları iste

RequestMapping tüketimleri de destekler

GetMapping, yalnızca yöntem düzeyinde ve sınıf düzeyinde ve yöntem düzeyinde uygulayabileceğimiz RequestMapping ek açıklamasına başvurabiliriz



3
RequestMapping de tüketmeyi destekler: docs.spring.io/spring/docs/current/javadoc-api/org/…
Gábor DANI

22

Gördüğünüz gibi burada :

Özellikle, @GetMappingkısayol olarak işlev gören oluşturulmuş bir ek açıklamadır @RequestMapping(method = RequestMethod.GET).

@GetMapping& Arasındaki fark@RequestMapping

@GetMappingconsumesgibi özniteliği destekler @RequestMapping.


14
İyi haberler! 4/2017 itibariyle Bahar web sayfasında, GetMapping bağlantılı yok artık 'tüketir' ve her zamanki RequestMapping özelliklerini destekler. Muhtemelen Spring, yazının ardından bunları ekledi.
devdanke

10

@RequestMapping bir sınıf seviyesidir

@GetMapping yöntem düzeyindedir

Sprint Yaylı 4.3. ve yukarıdakiler değişti. Artık http isteğini işleyecek yöntemde @GetMapping kullanabilirsiniz. Sınıf düzeyi @RequestMapping belirtimi (yöntem düzeyi) @GetMapping ek açıklaması ile rafine edilir

İşte bir örnek:

@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";
}
}

İlkbahar 4.3'ten önce, @RequestMapping(method=RequestMethod.GET)

Craig Walls tarafından yazılan bir kitaptan ek okuma Craig Walls tarafından yazılan bir kitaptan ek okuma


1
@RequestMapping yönteme de uygulanabilir.
ZhaoGang

Evet olabilir. Ancak @GetMapping daha özlü ve hedeflediği HTTP yöntemine özgüdür.
zee

3

Kısa cevap:

Anlambilimde bir fark yoktur.

Özellikle, @GetMapping @RequestMapping (method = RequestMethod.GET) için kısayol görevi gören oluşturulmuş bir ek açıklamadır .

Daha fazla okuma:

RequestMapping sınıf düzeyinde kullanılabilir:

Bu ek açıklama hem sınıfta hem de yöntem düzeyinde kullanılabilir. Çoğu durumda, yöntem düzeyinde uygulamalar HTTP yöntemine özgü @GetMapping, @PostMapping, @PutMapping, @DeleteMapping veya @PatchMapping varyantlarından birini kullanmayı tercih eder.

ancak GetMappingyalnızca yöntem için geçerlidir:

HTTP GET isteklerini belirli işleyici yöntemleriyle eşlemek için ek açıklama.


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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.