A Look at Upcoming Innovations in Electric and Autonomous Vehicles Spring Boot 4 и Java 25. Как не сжечь прод при миграции

Spring Boot 4 и Java 25. Как не сжечь прод при миграции

Spring Boot 4 и Java 25. Как не сжечь прод при миграции

Миграция с Spring Boot 3.x на 4.0 и с Java 21 на Java 25 - не апокалипсис, но и не рядовое обновление зависимостей. Сергей Прощаев, Tech Lead в FinTech и преподаватель курсов по Java-разработке, разобрал, как превратить потенциальный двухмесячный пожар в управляемую инженерную процедуру.

Почему откладывать дороже, чем действовать

Spring Boot 3.4 лишился публичных security-патчей ещё 31 декабря 2025 года. Boot 3.5 продержится чуть дольше, но его open-source поддержка истекает в июне 2026-го. Дальше - замороженная ветка без исправлений уязвимостей. Для команд в финансовом секторе это не технический долг в привычном смысле: это риск, который рано или поздно всплывёт на аудите. Прощаев вспоминает, как однажды отложенный апгрейд обернулся тремя накопившимися CVE в транзитивных зависимостях и авралом под давлением службы безопасности. Плановая миграция по чек-листу и паника под дедлайн - принципиально разные ситуации. смотреть Швейцария - Канада на RUTUBE Спорт

Фундамент Boot 4 шире, чем кажется

Spring Boot 4.0 вышел в ноябре 2025 года. Под капотом - Spring Framework 7, Jakarta EE 11, Hibernate ORM 7.1, Spring Security 7, Jackson 3 и JUnit 6. Обновляется не один фреймворк, а полтора десятка библиотек разом. Формальный минимум рантайма - Java 17, но команда Spring даёт полноценную поддержку Java 25 LTS, которая вышла в сентябре 2025-го. Застревать на 21-й без веских причин смысла нет.

Маршрут: два вектора, ни разу не вместе

Ключевой принцип всего подхода - не менять JDK и Spring одним прыжком. Регрессию нужно уметь локализовать. Прощаев предлагает чёткую последовательность шагов.

  1. Обновиться до последней 3.5.x и зачистить все deprecation-предупреждения - это предохранитель перед прыжком.
  2. Прогнать OpenRewrite с рецептом UpgradeSpringBoot_4_0, после чего обязательно вычитать дифф глазами: автоматика не понимает контекст бизнес-логики.
  3. Перейти на Boot 4.0.x - но всё ещё на Java 21. Самый широкий по радиусу шаг делается на знакомом рантайме.
  4. Только убедившись в зелёном CI - отдельным шагом поднять JDK до Java 25.

Без зелёного покрытия тестами двигаться нельзя в принципе. Контрактные тесты API, интеграционные сценарии с базой, проверки сериализации JSON, сценарии авторизации - всё это должно существовать до старта. Миграция без тестов - лотерея, а не инженерия.

Где чаще всего рвётся

Boot 4 ломает тихо. Код компилируется, а падает уже в рантайме. Основные точки риска собраны в таблицу.

Что меняетсяСимптомЧто проверять
Jackson 3Пакеты переехали с com.fasterxml.jackson на tools.jackson, ломается кастомная сериализацияКастомные сериализаторы и контрактные тесты API
Spring Security 7Изменённые дефолты CSRF молча ломают браузерные сценарииНастройки CSRF при наличии браузерных клиентов

В Boot 4 удалено около 36 deprecated-классов - порядка 88% устаревших API из веток 2.x и 3.x. Именно поэтому промежуточная остановка на 3.5 так важна: компилятор заранее подсвечивает всё, что в 4.0 уже вырезано. Прошли через 3.5 с чистыми варнингами - переход на 4.0 читается по понятным ошибкам, а не как гадание на кофейной гуще. Это и есть разница между управляемой процедурой и пожаром.