Was ist der Unterschied zwischen @GetMapping
und @RequestMapping(method = RequestMethod.GET)
?
Ich habe in einigen Spring Reactive Beispielen gesehen, dass @GetMapping
anstelle von @RequestMapping
verwendet wurde.
@GetMapping
ist eine zusammengesetzte Annotation, die als Abkürzung für @RequestMapping(method = RequestMethod.GET)
fungiert.
@GetMapping
ist die neuere Annotierung. Unterstützt den Verbrauch
Verbrauchsoptionen sind:
consumes = "text/plain"
verbraucht = {"text/plain", "application/*"}
Weitere Details finden Sie unter: GetMapping Annotation
oder lesen Sie: Mapping-Varianten anfordern
RequestMapping unterstützt auch Konsumierungen
Wie Sie sehen, hier :
Insbesondere ist
@GetMapping
eine zusammengesetzte Annotation, die als .__ fungiert. Abkürzung für@RequestMapping(method = RequestMethod.GET)
.Unterschied zwischen
@GetMapping
&@RequestMapping
@GetMapping
unterstützt dasconsumes
-Attribut wie@RequestMapping
.
@RequestMapping
ist eine Klassenstufe
@GetMapping
ist eine Methodenebene
Mit Sprint Spring 4.3. und die Dinge haben sich geändert. Jetzt können Sie @GetMapping für die Methode verwenden, mit der die http-Anforderung verarbeitet wird. Die @RequestMapping-Spezifikation auf Klassenebene wird mit der Annotation @GetMapping (auf Methodenebene) verfeinert
Hier ist ein Beispiel:
@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";
}
}
Vor dem Frühjahr 4.3 war es @RequestMapping(method=RequestMethod.GET)
Zusätzliche Lektüre aus einem von Craig Wallsverfassten Buch
Kurze Antwort:
Es gibt keinen Unterschied in der Semantik.
Insbesondere ist @GetMapping eine verfasste Annotation, die als .__ fungiert. Abkürzung für @RequestMapping (Methode = RequestMethod.GET).
Weiterführende Literatur:
RequestMapping
kann auf Klassenebene verwendet werden:
Diese Annotation kann sowohl auf Klassen- als auch auf Methodenebene verwendet werden. In den meisten Fällen bevorzugen Anwendungen auf der Methodenebene die Verwendung eines der HTTP-Methoden-spezifischen Varianten @GetMapping, @PostMapping, @PutMapping, @DeleteMapping oder @PatchMapping.
während GetMapping
nur für die Methode gilt:
Anmerkung zum Zuordnen von HTTP-GET-Anforderungen zu einem bestimmten Handler Methoden.