Что такое Spring Boot Starter и как его использовать?

«Что такое Spring Boot Starter и как его использовать?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Spring Boot Starter — это набор предварительно сконфигурированных зависимостей (Maven/Gradle), который упрощает добавление конкретной функциональности в проект.

Как это работает:

  1. Вы добавляете один стартер-артефакт в pom.xml или build.gradle.
  2. Maven/Gradle автоматически подтягивает все необходимые транзитивные зависимости (библиотеки).
  3. Spring Boot предоставляет автоматическую конфигурацию (auto-configuration) для этих библиотек на основе классов в classpath.

Пример: добавление JPA и Hibernate

<!-- pom.xml -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

Этот один dependency принесет:

  • spring-data-jpa, hibernate-core, spring-orm (основные библиотеки)
  • Драйвер БД (например, h2 или нужно добавить mysql-connector-j отдельно)
  • Автоконфигурацию DataSource, EntityManager и т.д.

Популярные стартеры:

  • spring-boot-starter-web — для создания REST API (Tomcat, Spring MVC).
  • spring-boot-starter-test — для тестирования (JUnit, Mockito, Spring Test).
  • spring-boot-starter-security — для аутентификации и авторизации.
  • spring-boot-starter-cache — для абстракции кэширования.

Почему это удобно: Starters избавляют разработчика от ручного управления версиями совместимых библиотек и написания шаблонных конфигураций, следуя принципу "convention over configuration".