← Заметки

История Spring Boot и соответствие версий Spring Framework

На этой странице

Spring Boot и Spring Framework — отдельные проекты с разными номерами версий. Boot добавляет к Framework автоконфигурацию, управление зависимостями и исполняемую упаковку. Поэтому трактовать Boot 3.1 как Framework 6.1 ненадёжно; проверяйте BOM выбранного выпуска Boot и разрешённый граф зависимостей.

Порядок обработки

Определение реальных версий компонентов

Схема показывает проверку зависимостей, а не хронологию выпусков. Boot, Framework и Lombok имеют отдельные версии и конфигурации зависимостей.

Изменения выбранных финальных выпусков

Хронология выделяет изменения возможностей, а не перечисляет все выпуски. Отличайте первый финальный выпуск от расширенной совместимости JDK в последующих патчах.

Spring Boot Первый финальный выпуск Избранные изменения и официальное объявление
1.2 2014-12-11 @SpringBootApplication и поддержка Servlet 3.1
1.3 2015-11-16 DevTools, автоконфигурация кэширования и напрямую исполняемые JAR
1.4 2016-07-28 Анализ ошибок запуска и улучшенное тестирование
2.0 2018-03-01 Framework 5.0, база Java 8 и реактивная веб-поддержка
3.0 2022-11-24 Framework 6.0, база Java 17, Jakarta и нативные образы
3.1 2023-05-18 Интеграция Testcontainers и Docker Compose при разработке
3.2 2023-11-23 Поддержка виртуальных потоков, RestClient и JdbcClient
4.0 2025-11-20 Framework 7, модульность, JSpecify и версионирование API

Например, список управляемых зависимостей Boot 3.1.0 задаёт spring-core 6.0.9. Совпадение младших номеров Boot и Framework не требуется. Сопоставлять Boot 2.4 с несуществующей веткой Framework 5.4 также неверно.

Стартеры, BOM и плагины сборки

Стартер объединяет зависимости для некоторой возможности. BOM управляет версиями; он не добавляет все перечисленные библиотеки автоматически. Плагин сборки Boot предоставляет задачи вроде bootRun и упаковку исполняемого JAR.

Для Gradle руководство управления зависимостями Boot описывает плагин dependency-management и нативную поддержку BOM. Одного применения Boot plugin недостаточно, чтобы все конфигурации Gradle принимали зависимости без версий. Проверьте и отдельные конфигурации, например процессоры аннотаций.

Проверьте реальные версии проекта

Выполните команды в итоговом проекте из руководств Initializr и Lombok.

./gradlew dependencyInsight --configuration runtimeClasspath --dependency spring-core
./gradlew dependencyInsight --configuration annotationProcessor --dependency lombok

Локальный пример разрешает Boot 4.1.2, spring-core 7.0.10 и Lombok 1.18.48. Разные номера относятся к разным проектам. dependencyInsight показывает выбранную версию и определившие её пути зависимостей или правила, что полезно для поиска конфликтов. Значения фиксируют этот пример, а не будущие настройки по умолчанию или универсальную комбинацию.

Хронология не является актуальной таблицей сроков поддержки. При создании или обновлении проекта отдельно проверяйте требования выбранного выпуска, совместимость зависимостей и политику поддержки. См. миграцию Java 17 и Jakarta для перехода на Boot 3, а для локального запуска — проверки IntelliJ и Gradle.

Обсуждение

Посмотреть на GitHub ↗