एनोटेशन के बीच अंतर @GetMapping और @RequestMapping (विधि = RequestMethod.GET)


152

बीच क्या अंतर है @GetMappingऔर @RequestMapping(method = RequestMethod.GET)?
मैंने कुछ स्प्रिंग रिएक्टिव उदाहरणों में देखा है, जिनका @GetMappingउपयोग इसके बजाय किया गया था@RequestMapping

जवाबों:


195

@GetMappingएक बना हुआ एनोटेशन है जो शॉर्टकट के रूप में कार्य करता है @RequestMapping(method = RequestMethod.GET)

@GetMappingनया घोषणा पत्र है। यह भस्म का समर्थन करता है

खपत विकल्प हैं:

भस्म = "पाठ / सादा"
भस्म = {"पाठ / सादा", "आवेदन / *"}

अधिक जानकारी के लिए देखें: GetMapping Annotation

या पढ़ने: अनुरोध मानचित्रण वेरिएंट

RequestMapping उपभोग का समर्थन करता है

GetMapping हम केवल विधि स्तर और RequestMapping एनोटेशन पर लागू कर सकते हैं हम वर्ग स्तर पर और साथ ही विधि स्तर पर आवेदन कर सकते हैं


@GetMappingसमर्थन करता है consumes- docs.spring.io/spring-framework/docs/current/javadoc-api/org/…
whoami

3
RequestMapping उपभोग का समर्थन करता है: docs.spring.io/spring/docs/current/javadoc-api/org/…
Gábor DANI

22

जैसा कि आप यहाँ देख सकते हैं :

विशेष रूप से, @GetMappingएक रचित एनोटेशन है जो शॉर्टकट के रूप में कार्य करता है @RequestMapping(method = RequestMethod.GET)

@GetMappingऔर के बीच अंतर@RequestMapping

@GetMappingconsumesजैसी विशेषता का समर्थन करता है @RequestMapping


14
खुशखबरी! आपके द्वारा लिंक किए गए स्प्रिंग वेब पेज पर 4/2017 तक, GetMapping अब 'उपभोग' और सामान्य RequestMapping विशेषताओं का समर्थन करता है । संभवतः वसंत ने आपकी पोस्ट के बाद उन्हें जोड़ा।
देवदंके १३'१

10

@RequestMapping एक वर्ग स्तर है

@GetMapping एक विधि-स्तर है

स्प्रिंट वसंत 4.3 के साथ। और चीजें बदल गई हैं। अब आप उस तरीके पर @GetMapping का उपयोग कर सकते हैं जो http अनुरोध को संभाल लेगा। वर्ग-स्तर @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";
}
}

स्प्रिंग 4.3 से पहले, यह था @RequestMapping(method=RequestMethod.GET)

क्रेग वाल्स द्वारा लिखित पुस्तक से अतिरिक्त पढ़ना क्रेग वाल्स द्वारा लिखित पुस्तक से अतिरिक्त पढ़ना


1
@RequestMapping को विधि पर भी लागू किया जा सकता है।
झाओगंग

हाँ, यह हो सकता है। हालाँकि, @GetMapping अधिक सटीक और HTTP विधि के लिए विशिष्ट है जो इसे लक्षित करता है।
ज़ी

3

संक्षिप्त जवाब:

शब्दार्थ में कोई अंतर नहीं है।

विशेष रूप से, @GetMapping एक रचित एनोटेशन है जो @RequestMapping (विधि = RequestMethod.GET) के लिए एक शॉर्टकट के रूप में कार्य करता है

आगे की पढाई:

RequestMapping वर्ग स्तर पर इस्तेमाल किया जा सकता है:

इस एनोटेशन का उपयोग कक्षा और विधि स्तर दोनों पर किया जा सकता है। ज्यादातर मामलों में, विधि स्तर पर एप्लिकेशन HTTP विधि विशिष्ट वेरिएंट @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, या @PatchMapping में से एक का उपयोग करना पसंद करेंगे।

जबकि GetMappingकेवल विधि पर लागू होता है:

विशिष्ट हैंडलर विधियों पर 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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.