Какая разница между @GetMapping
и @RequestMapping(method = RequestMethod.GET)
?
Я видел в некоторых Spring реактивных примерах, которые
@GetMapping
использовался вместо @RequestMapping
Разница между аннотациями @GetMapping и @RequestMapping (метод = RequestMethod.GET)
Ответ 1
@GetMapping
- это @GetMapping
аннотация, которая действует как ярлык для @RequestMapping(method = RequestMethod.GET)
.
@GetMapping
- более новая аннотация. Поддерживает расходует
Варианты потребления:
потребляет = "текст/обычный"
потребляет = {"text/plain", "application/*"}
Подробнее см.: GetMapping Annotation
или прочитайте: запрос вариантов отображения
RequestMapping также поддерживает потребление
Ответ 2
Как вы можете видеть здесь:
В частности,
@GetMapping
- это@GetMapping
аннотация, которая действует как ярлык для@RequestMapping(method = RequestMethod.GET)
.Разница между
@GetMapping
и@RequestMapping
@GetMapping
поддерживаетconsumes
атрибут как@RequestMapping
.
Ответ 3
@RequestMapping
- это уровень класса
@GetMapping
- это уровень метода
Спринт Spring 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)
Дополнительное чтение из книги, автором которой является Крейг Уоллс
Ответ 4
Короткий ответ:
Нет разницы в семантике.
В частности, @GetMapping - это составная аннотация, которая действует как ярлык для @RequestMapping (method = RequestMethod.GET).
Дальнейшее чтение:
RequestMapping
можно использовать на уровне класса:
Эта аннотация может использоваться как на уровне класса, так и на уровне метода. В большинстве случаев на уровне метода приложения предпочитают использовать один из вариантов, специфичных для метода HTTP, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping или @PatchMapping.
в то время как GetMapping
применяется только к методу:
Аннотация для отображения запросов HTTP GET на определенные методы-обработчики.