Какие основные функции предоставляет модуль Spring Web?

«Какие основные функции предоставляет модуль Spring Web?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Spring Web — это модуль Spring Framework для создания веб-приложений. Он предоставляет абстракции и инструменты для обработки HTTP-запросов, построения REST API и реализации MVC-архитектуры.

Ключевые возможности:

  • Аннотации для маппинга запросов: @Controller, @RestController, @RequestMapping, @GetMapping, @PostMapping и др.
  • Обработка данных запроса/ответа: Автоматическое преобразование JSON/XML через HttpMessageConverter, работа с параметрами (@RequestParam, @PathVariable).
  • Валидация: Интеграция с Bean Validation через аннотацию @Valid.
  • Модель представления: Передача данных в шаблоны (Thymeleaf, JSP) через объект Model.
  • Обработка исключений: Централизованная обработка с помощью @ControllerAdvice и @ExceptionHandler.

Пример REST-контроллера:

@RestController
@RequestMapping("/api/users")
public class UserController {
    @GetMapping("/{id}")
    public ResponseEntity<User> getUser(@PathVariable Long id) {
        // Логика получения пользователя
        return ResponseEntity.ok(user);
    }

    @PostMapping
    public ResponseEntity<User> createUser(@RequestBody @Valid UserDto userDto) {
        // Логика создания пользователя
        return ResponseEntity.status(HttpStatus.CREATED).body(createdUser);
    }
}

Почему это важно: Spring Web инкапсулирует низкоуровневые детали сервлетов, позволяя разработчику фокусироваться на бизнес-логике с помощью декларативного подхода (аннотаций).