Модули Spring
Тема дорожной карты · Spring Boot
Модули и стартеры Spring Boot — это отобранные дескрипторы зависимостей, инкапсулирующие все транзитивные библиотеки, классы авто-конфигурации и разумные умолчания, необходимые для активации конкретной возможности Spring Boot в одной записи pom.xml или build.gradle. Каждый стартер — например, spring-boot-starter-web (Spring MVC, Tomcat, Jackson), spring-boot-starter-data-jpa (Hibernate, Spring Data JPA, HikariCP), spring-boot-starter-security (Spring Security), spring-boot-starter-data-redis (Lettuce, Spring Data Redis) и spring-boot-starter-amqp (Spring AMQP, RabbitMQ) — устраняет необходимость вручную выравнивать совместимые версии библиотек, наследуя их из Spring Boot BOM. Модули Spring Boot организованы по функциональным областям — веб, данные, безопасность, обмен сообщениями, наблюдаемость, тестирование, — чтобы микросервис подтягивал только реально необходимые возможности, сохраняя Docker-образ и нативный образ GraalVM компактными, а время запуска коротким. Модуль spring-boot-starter-actuator добавляет инструментирование Micrometer, индикаторы работоспособности и семейство эндпоинтов /actuator, используемых liveness- и readiness-пробами Kubernetes, тогда как spring-boot-starter-test поставляет JUnit 5, Mockito, AssertJ и поддержку Testcontainers для всех уровней тестирования. Понимание модулей и стартеров Spring Boot необходимо для управления зависимостями в многомодульных Maven- или Gradle-проектах и для создания пользовательских стартеров, пакетирующих переиспользуемую инфраструктурную конфигурацию для внутренних платформенных команд Spring Boot.
Как это работает
Модули Spring: Spring Framework — доминантный Java application-фреймворк; Spring Boot — opinionated, auto-configured слой поверх. Spring Boot 3.x (2026 LTS-линия) требует JDK 17+, поддерживает JDK 21 + 23, использует Jakarta EE (не javax). Starter POMs объединяют связанные зависимости (spring-boot-starter-web, -data-jpa, -security и т.п.). Spring Initializr (start.spring.io) генерирует project-skeletons. Auto-configuration сканирует classpath + связывает разумные дефолты.
Когда применять
Для новых Java-приложений — Spring Boot 3.x (LTS): широкая экосистема, простой onboarding, production-ready из коробки. Spring Initializr для bootstrap; не добавляйте 20 starters сразу — только нужное. Близко к дефолтам пока нет причины — каждая кастомизация = что-то для поддержки. Для не-Java JVM (Kotlin) Spring Boot поддерживает first-class.
Типичные ошибки
Ловушки Модули Spring: новый проект на Spring Boot 2.x в 2026 (EOL — берите 3.x); путаница Spring + Spring Boot (Boot — auto-config-слой, не замена); пиньят JDK 8/11 навсегда (Spring 3.x требует 17); добавляют каждый starter "на всякий случай" (security surface + classpath bloat).