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

Рис. 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-проєктів.