Залежності (Dependencies)
Що ми підключаємо до Spring Boot і навіщо це потрібно для роботи сервера

Рис. 3 — Вибір залежностей у Spring Initializr

Dependencies — це готові бібліотеки, які додають функціональність у наш проєкт без написання всього з нуля.

### 1️⃣ Spring Web — основа серверної частини

Spring Web — це головна залежність для створення веб-сервера та REST API.

Вона дозволяє:

- приймати HTTP-запити (GET, POST, PUT, DELETE);
- створювати REST-контролери;
- працювати з JSON;
- запускати вбудований сервер (Tomcat).

Без Spring Web ваш проєкт — це просто Java-програма, а не сервер.

👉 Якщо немає Spring Web — немає API.

### 2️⃣ Lombok — автоматизація рутинного коду

Lombok — бібліотека, яка автоматично генерує шаблонний код.

Він прибирає необхідність писати:

- getters / setters;
- конструктори;
- toString();
- equals() / hashCode().

Замість цього — кілька анотацій:

    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor

Код стає коротшим і читабельнішим.

👉 Lombok = менше писати — менше помилятись.

### 3️⃣ Spring Data JPA — робота з базою без SQL

Spring Data JPA — це міст між Java та базою даних.

Він дозволяє:

- зберігати об’єкти в таблиці;
- читати дані без SQL;
- працювати через Repository;
- використовувати Hibernate.

Замість SQL:

    userRepository.findByEmail(email);

JPA саме зробить SELECT.

👉 JPA = база через Java-об’єкти.

### 4️⃣ MySQL Driver — зв’язок з реальною БД

MySQL Driver — це “перекладач” між Java та MySQL.

Він потрібен для:

- підключення до сервера БД;
- передачі запитів;
- отримання результатів;
- керування транзакціями.

Без драйвера Java фізично не бачить базу.

👉 Нема драйвера — нема бази.

### 5️⃣ Як ці залежності працюють разом

У реальному проєкті схема така:

- Spring Web — приймає запит;
- Controller — обробляє;
- Service — логіка;
- JPA — доступ до БД;
- MySQL Driver — підключення;
- Lombok — спрощує код.

Всі ці залежності = повноцінний backend.

### 6️⃣ Мінімальний набір для нашої практичної

- ✅ Spring Web
- ✅ Spring Data JPA
- ✅ Lombok
- ✅ MySQL Driver (або H2)

Це база для 80% навчальних і junior-проєктів.