Вопрос проверяет понимание архитектурных различий между обычными зависимостями и Starter’ами в Spring Boot.
Обычная библиотека содержит код и API.
Starter в основном содержит зависимости и настройки.
Starter подключает целый набор библиотек под конкретную задачу.
Он тесно связан с автоконфигурацией Spring Boot.
Хотя Starter выглядит как обычная зависимость, его назначение принципиально иное.
Библиотека — это набор классов и API, которые ты используешь напрямую.
Характеристики:
Содержит бизнес- или инфраструктурный код
Требует ручной настройки
Часто зависит от других библиотек
Starter — это агрегатор зависимостей под конкретный сценарий.
Особенности:
Почти не содержит кода
Подключает набор согласованных библиотек
Предназначен для работы с автоконфигурацией
Если подключить библиотеку напрямую:
Нужно самому добавить зависимости
Нужно настроить конфигурацию
Если подключить Starter:
Зависимости подтягиваются автоматически
Большая часть конфигурации уже готова
// обычная библиотека
implementation("org.hibernate:hibernate-core")
// starter
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
Библиотека — это функциональность.
Starter — это удобный способ эту функциональность подключить и настроить.