Какие Spring Boot Starter зависимости вы использовали в проектах?

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

Ответ

Активно использовал следующие официальные Spring Boot Starters для быстрой настройки функциональности:

Основные стартеры:

  • spring-boot-starter-web – для создания веб-приложений и REST API (включает embedded Tomcat, Spring MVC, Jackson).
  • spring-boot-starter-data-jpa – для работы с реляционными БД через JPA (Hibernate).
  • spring-boot-starter-security – для настройки аутентификации и авторизации.
  • spring-boot-starter-test – для модульного и интеграционного тестирования (JUnit, Mockito, Spring Test).

Стартеры для интеграции и production-ready фич:

  • spring-boot-starter-actuator – для мониторинга здоровья приложения, метрик, эндпоинтов.
  • spring-boot-starter-cache – для абстракции над кэшированием (поддержка EhCache, Redis, Caffeine).
  • spring-boot-starter-amqp – для работы с очередями сообщений через RabbitMQ.
  • spring-boot-starter-mail – для отправки email через JavaMail.
  • spring-boot-starter-batch – для реализации пакетной обработки данных.

Пример зависимости spring-boot-starter-data-jpa в pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <!-- Версия управляется через spring-boot-starter-parent -->
</dependency>
<!-- Также необходима зависимость от конкретной БД, например: -->
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>

Также использовал Spring Cloud Starters в микросервисных архитектурах (например, spring-cloud-starter-config, spring-cloud-starter-netflix-eureka-client, spring-cloud-starter-gateway).