## Spring Boot 3+

Фреймворк для швидкого створення серверних застосунків та REST API
Java 17+
Spring Web
Spring Data JPA
REST
JSON
H2 / MySQL

### 1) Spring vs Spring Boot — коротко

Spring це “екосистема”

Набір модулів для серверної розробки: залежності, DI, web, security, доступ до БД, транзакції тощо.

Spring Boot це “швидкий старт”

Дає готову конфігурацію “з коробки”: стартуєш проєкт за хвилини, а не налаштовуєш руками 2 години.

### 2) Чому “Boot” — що він робить за вас

- Автоконфігурація: підключив залежність → Boot сам підбирає налаштування.
- Starter-залежності: один “starter” тягне все потрібне для модуля (web/jpa/validation).
- Вбудований сервер: запускаєте застосунок як звичайний Java-процес (Tomcat/Jetty/Undertow).
- Єдине місце конфігурації: application.properties / application.yml.
- Стандарти: структура проєкту та підходи, які “як у реальній роботі”.

### 3) Як виглядає мінімальний REST endpoint

Це рівень “Hello API” — і він уже працює як сервер.

@RestController @RequestMapping("/users") public class UserController { @GetMapping public List<String> getAll() { return List.of("Ivan", "Oksana"); } }

### 4) Типова архітектура (те, що ви будете робити на практичній)

Шари застосунку

- Controller — приймає HTTP-запити
- Service — бізнес-логіка
- Repository — доступ до БД
- Entity — таблиця/модель

Потік виконання
Postman/Browser → Controller → Service → Repository → DB

Це “скелет” 90% enterprise backend.

### 5) Порівняння: Spring Boot vs “голий” Java Web

Без Spring Boot (умовно “Servlets руками”)

- Багато конфігурації вручну
- Менше стандартів → більше хаосу
- Складніше тестувати, розширювати
- Повільний старт для новачка

З Spring Boot

- Швидкий старт: залежності + мінімум коду
- Стандартна структура проєкту
- Зручно підключати БД, валідацію, логування
- Те, що найчастіше просять на роботі

### 6) Порівняння з іншими популярними backend-підходами

Важливо: не “хто кращий назавжди”, а “для чого підходить”.

- Node.js / Express — швидкий старт, багато фронтендерів. Але Java часто сильніша у великих enterprise-системах.
- Python / Django — дуже швидка розробка CRUD, але Java часто виграє стабільністю/типізацією у великих командах.
- .NET — прямий конкурент Java. Вибір часто залежить від компанії/екосистеми.

Для курсу ми беремо Spring Boot, бо він дає “правильну” архітектуру, яку потім легко перенести в реальну роботу.

### 7) Що важливо знати про Spring Boot 3+

- Java 17+ — мінімальна вимога.
- Jakarta замість javax (перехід у нові пакети) — тому старі приклади з інтернету інколи “не компіляться”.
- REST-first — найтиповіший формат взаємодії: JSON + HTTP.
- Добре лягає на сучасний деплой: Docker / хмари / CI/CD (згодом).

### 8) Що студенти мають винести з цієї лекції

- Розуміти, що таке backend і чим він займається.
- Розуміти роль Spring Boot у створенні API.
- Знати структуру проєкту: Controller / Service / Repository / DB.
- Бути готовими до практичної: створити проєкт, підключити БД, зробити перші endpoints.

Далі: створення проєкту через Spring Initializr та перший запуск