it-swarm.com.de

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

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.

92
nowszy94

@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

130
dhS

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 das consumes-Attribut wie @RequestMapping.

18
Deroude

@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 Extra reading from a book authored by Craig Walls

4
zee

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.


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