Назад к вопросам
Junior
69
questionbank

В чем разница между аннотациями @RequestMapping и @PutMapping в Spring?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

@RequestMapping — универсальная аннотация для маппинга веб-запросов на методы обработчика. Позволяет указать HTTP-метод (GET, POST, PUT, DELETE, PATCH), путь, параметры, заголовки, типы содержимого запроса и ответа.

@PutMapping — специализированная аннотация, являющаяся сокращением для @RequestMapping(method = RequestMethod.PUT). Используется исключительно для маппинга HTTP-запросов типа PUT на методы обработчика.

Основное различие: @RequestMapping более общая и настраиваемая, @PutMapping специфична для операции обновления ресурса (PUT).

Пример:

// Пример использования @RequestMapping для обработки PUT запроса
@RequestMapping(value = "/users/{id}", method = RequestMethod.PUT)
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User userDetails) {
    // Логика обновления пользователя
    return ResponseEntity.ok(updatedUser);
}

// Пример использования @PutMapping для того же самого
@PutMapping("/users/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User userDetails) {
    // Логика обновления пользователя
    return ResponseEntity.ok(updatedUser);
}