1. Еволюція: Від "пекла конфігурацій" до Spring Boot

Раніше, щоб створити простий веб-додаток на Java, розробнику доводилося:
  • Вручну налаштовувати сотні рядків XML-файлів.
  • Самостійно підбирати версії бібліотек, які не конфліктують між собою.
  • Окремо встановлювати та налаштовувати сервер (наприклад, Tomcat).
Spring Boot з’явився як "рятівне коло". Його мета — зробити так, щоб ви могли просто натиснути "Run" і ваш додаток запрацював.

2. Три кити Spring Boot

Вся магія Spring Boot тримається на трьох концепціях:
  1. Starters (Стартери): Це готові "набори розробника". Замість того, щоб шукати 10 бібліотек для роботи з базою даних, ви додаєте один spring-boot-starter-data-jpa. Це як замовити набір для приготування піци, де вже є все необхідне в правильних пропорціях.
  2. Auto-configuration (Автоконфігурація): Spring Boot аналізує ваш проект. Бачить у коді анотацію для БД? Сам створює підключення. Бачить веб-бібліотеку? Сам запускає веб-сервер.
  3. Embedded Server (Вбудований сервер): Тепер сервер — це частина вашої програми, а не програма — частина сервера. Це дозволяє запакувати весь додаток у один .jar файл і запустити його де завгодно командою java -jar.

3. Головна анотація: @SpringBootApplication

Кожен проект починається з одного класу. Його головна анотація — це "двигун" системи. Вона об'єднує в собі:
  • @Configuration: Дозволяє реєструвати нові об'єкти (біни).
  • @EnableAutoConfiguration: Вмикає ту саму "магію" автоматичного налаштування.
  • @ComponentScan: Наказує Spring пройтися по всіх папках проекту і знайти ваші класи з анотаціями @Service, @Controller тощо.

4. Розуміння IoC та Dependency Injection

Це найскладніша для новачків, але найважливіша частина.
  • IoC (Inversion of Control): У звичайній програмі ви пишете User user = new User(). У Spring ви кажете: "Мені потрібен об'єкт User", і Spring сам його створює і віддає вам. Керування (Control) передано фреймворку.
  • DI (Dependency Injection): Це спосіб доставки об'єктів. Якщо вашому Сервісу потрібен Репозиторій, Spring просто "впорскує" (Inject) репозиторій у сервіс при створенні.
Приклад (як це бачить Spring):
@Service // Кажемо Spring: "Візьми цей клас під контроль"
public class MyService {

    private final MyRepository repository;

    // Spring сам знайде MyRepository і передасть його сюди
    public MyService(MyRepository repository) {
        this.repository = repository;
    }
}

5. Життєвий цикл запуску

Коли ви запускаєте метод main:
  1. Запускається Spring Application Context.
  2. Скануються ваші класи (Component Scan).
  3. Створюються об'єкти (Beans) і зв'язуються між собою (DI).
  4. Спрацьовує Автоконфігурація (підключення БД, налаштування безпеки).
  5. Запускається вбудований Tomcat на порту 8080.
  6. Додаток готовий приймати запити.



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