Unterschied zwischen den Annotationen @GetMapping und @RequestMapping(method = RequestMethod.GET)

Lesezeit: 4 Minuten

Benutzer-Avatar
nowszy94

Was ist der Unterschied zwischen @GetMapping und @RequestMapping(method = RequestMethod.GET)?
Ich habe das in einigen Beispielen von Spring Reactive gesehen
@GetMapping wurde stattdessen verwendet @RequestMapping

Benutzer-Avatar
dhS

@GetMapping ist eine zusammengesetzte Anmerkung, die als Abkürzung für dient @RequestMapping(method = RequestMethod.GET).

@GetMapping ist die neuere Anmerkung. Es unterstützt verbraucht

Verbrauchsoptionen sind:

verbraucht = “text/plain”
verbraucht = {“text/plain”, “application/*”}

Weitere Einzelheiten finden Sie unter:
GetMapping-Anmerkung

oder lesen Sie:
Zuordnungsvarianten anfordern

RequestMapping unterstützt auch Konsum

GetMapping können wir nur auf Methodenebene anwenden und die RequestMapping-Annotation können wir sowohl auf Klassenebene als auch auf Methodenebene anwenden

Benutzer-Avatar
Deroude

Wie du sehen kannst hier:

Speziell, @GetMapping ist eine zusammengesetzte Anmerkung, die als Abkürzung für dient @RequestMapping(method = RequestMethod.GET).

Unterschied zwischen @GetMapping & @RequestMapping

@GetMapping unterstützt die consumes Attribut wie
@RequestMapping.

  • Gute Nachrichten! Ab 4/2017 auf der von Ihnen verlinkten Spring-Webseite GetMapping tut unterstützen jetzt ‘consumes’ und die üblichen RequestMapping-Attribute. Wahrscheinlich hat Spring diese nach Ihrem Beitrag hinzugefügt.

    – devdanke

    13. April 2017 um 0:26 Uhr


@RequestMapping ist eine Klassenstufe

@GetMapping ist eine Methodenebene

Mit Sprint Spring 4.3. und oben haben sich die Dinge geändert. Jetzt können Sie @GetMapping für die Methode verwenden, die die HTTP-Anforderung verarbeitet. Die @RequestMapping-Spezifikation auf Klassenebene wird mit der Annotation (Methodenebene)@GetMapping 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 Spring 4.3 war es so @RequestMapping(method=RequestMethod.GET)

Zusätzliche Lektüre aus einem Buch von Craig Walls
Zusätzliche Lektüre aus einem Buch von Craig Walls

  • @RequestMapping kann auch auf die Methode angewendet werden.

    – ZhaoGang

    14. Januar 2019 um 2:32 Uhr

  • Ja das kann sein. @GetMapping ist jedoch prägnanter und spezifischer für die HTTP-Methode, auf die es abzielt.

    – z atef

    19. Januar 2019 um 19:36 Uhr

  • ZhaoGang macht einen guten Punkt. Ihre Antwort ist falsch. Sie können argumentieren, dass die Art und Weise, wie Sie die Dinge tun, eine GUTE KONVENTION ist. Ändert aber nichts an der Tatsache, dass Ihre Antwort, so wie sie derzeit geschrieben ist, falsch ist.

    – KANJICODER

    15. Mai um 21:22 Uhr

  • @KANJICODER warum WÜRDEN Sie jemals “@RequestMapping” mehr als einmal in einem Controller verwenden wollen, xxxxController.java-Datei.??? Warum.. Denken Sie an zukünftige Betreuer…. andere Leute auch!

    – z atef

    17. Mai um 5:08 Uhr

Kurze Antwort:

Es gibt keinen semantischen Unterschied.

Genauer gesagt ist @GetMapping ein zusammengesetzte Anmerkung, die als Abkürzung dient für @RequestMapping (Methode = RequestMethod.GET).

Weiterlesen:

RequestMapping können auf Klassenebene verwendet werden:

Diese Annotation kann sowohl auf Klassen- als auch auf Methodenebene verwendet werden. In den meisten Fällen bevorzugen Anwendungen auf Methodenebene die Verwendung einer der HTTP-methodenspezifischen Varianten @GetMapping, @PostMapping, @PutMapping, @DeleteMapping oder @PatchMapping.

während GetMapping gilt nur für Methode:

Anmerkung zum Zuordnen von HTTP-GET-Anforderungen zu bestimmten Handler-Methoden.


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

  1. @RequestMapping unterstützt verbraucht sogar mit method=GET, während @GetMapping verbraucht nicht unterstützt.
  2. @RequestMapping ist eine Annotation auf Methoden- und Typebene, während @GetMapping eine Annotation auf Methodenebene ist

Ansonsten ist @GetMapping dasselbe wie @RequestMapping(method=RequestMethod.GET)

Benutzer-Avatar
Christian Vincenzo Traina


                         `@RequestMapping` since 2.5

=> Kann mit allen HTTP-Methoden umgehen

=> Gilt für Klasse und Methode

=> Kann als Ersatz für verwendet werden @Controller und @RestControllerWenn wir es zusammen mit verwenden @Component.


                        `@GetMapping` since 4.3

=> Kann nur die GET-Methode von HTTP verarbeiten

=> Gilt nur für Methode

@GetMapping ist eine bestimmte Art von @RequestMapping(method = RequestMethod.GET). Beide Stützen verbraucht

Benutzer-Avatar
Akib Sayyed

  1. @GetMapping ist die Abkürzung für @RequestMapping(method = RequestMethod.GET)

  2. @RequestMapping ist eine Klassenebene

  3. @GetMapping ist eine Methodenebene

4) Die Annotation @RequestMapping wird verwendet, um Webanforderungen bestimmten Handler-Klassen und -Funktionen zuzuordnen. Der Hauptvorteil dieser Anmerkungen besteht darin, dass sie sowohl für die Controller-Klasse als auch für Methoden verwendet werden können.

5) Es wird immer empfohlen, bei der Deklaration von @RequestMapping für die Controller-Methoden spezifisch zu sein, da @Getmapping in den meisten Mapping-Handler-Klassen nicht verwendet wird.

1353510cookie-checkUnterschied zwischen den Annotationen @GetMapping und @RequestMapping(method = RequestMethod.GET)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy