Аннотация
Обновляя у себя какой-либо фреймворк, ты, конечно, всегда внимательно читаешь его release notes и migration guide😉 Но даже если это правда, тебя может поджидать множество сюрпризов, особенно если это мажорное обновление такого базового фреймворка, как Spring Boot. Помимо себя, он привносит обновления для своего BOM, а это ≈150 транзитивных зависимостей на все случаи жизни — такой upgrade не может пройти без накладок…
В этом докладе («грабледайджесте») я расскажу о своем опыте перевода микросервисного приложения на Spring Boot 2, проведу по многим собранным в ходе этого граблям и покажу для каждого случая решение или обходной путь. В частности, я расскажу:
- как поддержка реактивного стека ломает обратную совместимость на уровне исходного кода;
- почему переписанный с нуля Gradle-плагин может портить сборку составного - проекта и содержимое выходного JAR;
- как новые правила relax binding параметров могут помешать запуску приложения;
- как сломать старт микросервиса, ненароком поссорив мониторинг с пулом коннектов;
- причем тут движок Micrometer, если отвалились задания по расписанию;
- как замешан новый режим проксирования в исчезновении некоторых MBean из JMX;
- как рефакторинг настроек WebMVC может своротить определение Content-Type при отдаче файлов;
- какие новшества Mockito не дают тестам скомпилироваться и проваливают надежно проходившие тесты;
- а также о ряде других мелких, но неприятных «спецэффектов».
Доклад ориентирован на разработчиков, планирующих или уже внедряющих Spring Boot 2 поверх старой версии или с нуля.
Дата
19.10.2018 16:00 — 17:00
Место
Санкт-Петербург, Экспофорум
Петербургское шоссе, 64/1, Россия
Программный инженер
Любимая технология: здравый смысл