Sobes.tech
Назад к вопросам
Junior — Middle
77

Чем отличаются аннотации @RequestMapping и @PutMapping в Spring MVC?

Ответ от нейросети

sobes.tech AI

В Spring MVC аннотация @RequestMapping используется для обработки HTTP-запросов и может применяться как на уровне класса, так и на уровне метода. Она позволяет указать путь, HTTP-методы (GET, POST, PUT и др.), параметры и другие условия для обработки запроса.

Аннотация @PutMapping — это специализированный вариант @RequestMapping, который по умолчанию обрабатывает только HTTP-метод PUT. Она служит для упрощения кода, когда нужно обработать именно PUT-запрос.

Пример:

@RestController
@RequestMapping("/users")
public class UserController {

    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
    public ResponseEntity<?> updateUserOld(@PathVariable Long id, @RequestBody User user) {
        // обработка PUT-запроса
    }

    @PutMapping("/{id}")
    public ResponseEntity<?> updateUser(@PathVariable Long id, @RequestBody User user) {
        // то же самое, но с использованием @PutMapping
    }
}

Таким образом, @PutMapping — это более лаконичный и специализированный способ указать обработку PUT-запроса, тогда как @RequestMapping более универсальна.