Подтвердить что ты не робот

Разница между аннотациями @GetMapping и @RequestMapping (метод = RequestMethod.GET)

Какая разница между @GetMapping и @RequestMapping(method = RequestMethod.GET)?
 Я видел в некоторых Spring реактивных примерах, которые @GetMapping использовался вместо @RequestMapping

4b9b3361

Ответ 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)

Дополнительное чтение из книги, автором которой является Крейг Уоллс Extra reading from a book authored by Craig Walls

Ответ 4

Короткий ответ:

Нет разницы в семантике.

В частности, @GetMapping - это составная аннотация, которая действует как ярлык для @RequestMapping (method = RequestMethod.GET).

Дальнейшее чтение:

RequestMapping можно использовать на уровне класса:

Эта аннотация может использоваться как на уровне класса, так и на уровне метода. В большинстве случаев на уровне метода приложения предпочитают использовать один из вариантов, специфичных для метода HTTP, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping или @PatchMapping.

в то время как GetMapping применяется только к методу:

Аннотация для отображения запросов HTTP GET на определенные методы-обработчики.


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