Логотип Workflow

Article

Starters And Dependency Management

Модуль 4. Starters и BOM: как не утонуть в зависимостях

Цель модуля

Научиться собирать проект на Spring Boot без dependency-хаоса и конфликтов версий.

Что разберём

  • Что такое starter и зачем он нужен.
  • Как работает dependency management через BOM.
  • Как проверять и держать зависимости под контролем.

Шаг 1. Что такое starter

Starter - это согласованный набор библиотек под конкретный сценарий.

Примеры:

  • spring-boot-starter-web
  • spring-boot-starter-data-jpa
  • spring-boot-starter-security
  • spring-boot-starter-test

Шаг 2. Почему starter лучше ручного набора

  • Меньше ручной работы.
  • Совместимые версии из коробки.
  • Ниже риск конфликтов на runtime.

Шаг 3. Практика: базовый Gradle-проект

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'org.postgresql:postgresql'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Шаг 4. Что делает BOM Spring Boot

BOM фиксирует совместимые версии транзитивных библиотек. Поэтому в большинстве случаев не нужно вручную указывать версии для зависимостей из экосистемы Boot.

Шаг 5. Проверка дерева зависимостей

Полезно периодически запускать:

./gradlew dependencies

и смотреть, какие версии подтянулись фактически.

Частые ошибки

  • Добавлять «на всякий случай» много starter'ов.
  • Явно указывать версии там, где их уже управляет BOM.
  • Не чистить неиспользуемые зависимости.

Мини-ДЗ

  1. Собери минимальный проект REST + JPA + PostgreSQL.
  2. Посмотри дерево зависимостей и выпиши 5 ключевых библиотек.
  3. Удали одну лишнюю зависимость и проверь, что функциональность сохранилась.

Чек-лист

  • Понимаю разницу между starter и обычной библиотекой.
  • Понимаю, зачем нужен BOM.
  • Умею читать dependency tree.

Quiz

Проверьте, что вы усвоили

Авторизуйтесь чтоб пройти тесты