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

Ответ

Активно использовал следующие официальные 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).

Ответ 18+ 🔞

Да ты посмотри, какая овердохуища коллекция стартеров у меня накопилась! Прямо как у бабушки в шкафу — на все случаи жизни, блядь.

Основные, без которых нихуя не работает:

  • spring-boot-starter-web – это ж святое, ёпта! Хочешь веб-приложение или REST API? На, получай встроенный Tomcat, Spring MVC и Jackson в одном флаконе. Раз — и уже сервер крутится.
  • spring-boot-starter-data-jpa – чтобы не писать эти ебуччие SQL-запросы руками, когда можно заставить Hibernate это делать. Магия, блядь, чистой воды.
  • spring-boot-starter-security – а это чтобы всякие левые пидорасы не лазили, куда не надо. Настроил — и спи спокойно, пока Spring сам разбирается с аутентификацией.
  • spring-boot-starter-test – ну а как без тестов-то? Тут тебе и JUnit, и Mockito, чтобы эти ваши моки создавать. Без него — читерство, однозначно.

А это уже для красоты и мощного продакшена:

  • spring-boot-starter-actuator – включил и сразу видишь, не сдохло ли твое приложение. Метрики, здоровье, эндпоинты — волшебная палочка для девопса, ёпта.
  • spring-boot-starter-cache – когда база уже еле дышит, а запросы летят. Добавил аннотацию @Cacheable — и вуаля, скорость выросла в три раза, блядь.
  • spring-boot-starter-amqp – для серьёзных пацанов, которые работают с очередями. RabbitMQ, сообщения, асинхронность — красота же!
  • spring-boot-starter-mail – захотел пользователю письмецо отправить — пожалуйста, JavaMail уже в комплекте.
  • spring-boot-starter-batch – когда нужно обработать терабайты данных, но не сейчас, а потом, пакетами. Мощная штука, хотя и сложная, блядь.

Вот смотри, как это в 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 — чтобы сервисы друг друга находили, как слепые котята. Вообще, ребята, они там наверху всё продумали, осталось только правильно собрать этот конструктор, не накосячив.