java - framework - Diferencia entre las anotaciones @GetMapping y @RequestMapping(method=RequestMethod.GET)
spring java (4)
¿Cuál es la diferencia entre
@GetMapping
y
@RequestMapping(method = RequestMethod.GET)
?
He visto en algunos ejemplos de Spring Reactive que se utilizó
@GetMapping
lugar de
@RequestMapping
Como puedes ver aquí :
Específicamente,
@GetMapping
es una anotación compuesta que actúa como un acceso directo para@RequestMapping(method = RequestMethod.GET)
.Diferencia entre
@GetMapping
y@RequestMapping
@GetMapping
admite el atributoconsumes
como@RequestMapping
.
@GetMapping
es una anotación compuesta que actúa como un acceso directo para
@RequestMapping(method = RequestMethod.GET)
.
@GetMapping
es la nueva anotación.
Apoya consume
Las opciones de consumo son:
consume = "texto / sin formato"
consume = {"text / plain", "application / *"}
Para más detalles ver: Anotación GetMapping
o leer: solicitar variantes de mapeo
RequestMapping también admite consumos
@RequestMapping
es un nivel de clase
@GetMapping
es un nivel de método
Con sprint Spring 4.3. y hasta las cosas han cambiado. Ahora puede usar @GetMapping en el método que manejará la solicitud http. La especificación @RequestMapping a nivel de clase se refina con la anotación @GetMapping (nivel de método)
Aquí hay un ejemplo:
@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";
}
}
Antes de Spring 4.3, era
@RequestMapping(method=RequestMethod.GET)
Respuesta corta:
No hay diferencia en semántica.
Específicamente, @GetMapping es una anotación compuesta que actúa como un acceso directo para @RequestMapping (method = RequestMethod.GET).
Otras lecturas:
RequestMapping
se puede usar a nivel de clase:
Esta anotación se puede usar tanto a nivel de clase como a nivel de método. En la mayoría de los casos, a nivel de método, las aplicaciones preferirán usar una de las variantes específicas del método HTTP @GetMapping, @PostMapping, @PutMapping, @DeleteMapping o @PatchMapping.
mientras que
GetMapping
solo se aplica al método:
Anotación para asignar solicitudes HTTP GET a métodos de controlador específicos.