🌐 Основні концепції Web MVC

  • Spring MVC — модель розробки веб-додатків, заснована на шаблоні Model-View-Controller.
  • DispatcherServlet — «головний контролер» (Front Controller), який приймає всі вхідні HTTP-запити та розподіляє їх між відповідними обробниками.
  • Controller — компонент (клас), що містить бізнес-логіку обробки запитів і повертає результат (View або дані).
  • RestController — спеціалізований контролер для створення RESTful сервісів; він автоматично конвертує об'єкти в JSON або XML.
  • Embedded Server — вбудований сервер (за замовчуванням Tomcat), який дозволяє запускати додаток як звичайну Java-програму без зовнішнього сервера.

📝 Анотації контролерів

  • @Controller — позначає клас як веб-контролер (зазвичай для повернення HTML-сторінок).
  • @RestController — комбінація @Controller та @ResponseBody.
  • @RequestMapping — базовий шлях для всіх запитів у контролері (наприклад, /api/users).
  • @GetMapping, @PostMapping, @PutMapping, @DeleteMapping — скорочені анотації для конкретних HTTP-методів.
  • @PathVariable — витягує дані безпосередньо з URL-адреси (наприклад, /users/{id}).
  • @RequestParam — витягує параметри запиту з URL (наприклад, /search?name=Ivan).
  • @RequestBody — автоматично перетворює тіло запиту (JSON) у Java-об'єкт.

📡 Обмін даними та відповіді

  • ResponseEntity — спеціальний об'єкт, який дозволяє повністю налаштувати HTTP-відповідь (статус-код, заголовки, тіло).
  • DTO (Data Transfer Object) — об'єкт, призначений виключно для передачі даних між клієнтом і сервером (щоб не показувати внутрішні Entity бази даних).
  • Jackson — бібліотека, яка в Spring Boot за замовчуванням відповідає за конвертацію Java-об'єктів у JSON і навпаки.
  • Model — об'єкт (контейнер), що використовується для передачі даних із контролера в HTML-шаблон (View).

🎨 Шаблонізатори та View

  • Thymeleaf — сучасний серверний шаблонізатор, який використовується в Spring Boot для генерації HTML-сторінок.
  • View Resolver — механізм, який знаходить потрібний HTML-файл у ресурсах проекту за його назвою.
  • Static Content — статичні файли (картинки, стилі CSS, скрипти JS), які за замовчуванням зберігаються в папці src/main/resources/static.

🛡️ Валідація та помилки

  • Bean Validation (@Valid) — механізм перевірки вхідних даних (наприклад, чи не порожнє поле, чи правильний формат email).
  • BindingResult — об'єкт, що містить результати валідації та список помилок.
  • @ControllerAdvice — глобальний обробник помилок, який дозволяє перехоплювати виключення (Exceptions) у всіх контролерах одночасно.
  • ExceptionHandler — метод всередині контролера або ControllerAdvice для обробки конкретної помилки.



Остання зміна: середа 20 травня 2026 12:14 PM