Миграция на Spring Boot 3.1.x

  • Spring 6, Hibernate 6.2, Hibernate Validator 7, R2DBC 1.0, JPA 3.1, Tomcat 10
  • Java 17 – минимальная версия
  • Генерация нативных образов GraalVM
  • Улучшения в observability через Micrometer и Micrometer Tracing
  • Переход от Java EE к Jakarta EE. Jakarta EE 9 – минимальная версия, поддержка Jakarta EE 10

  • В pom.xml обновляем версии Spring и Springdoc
  • Мигрируем Springdoc на 2.x: меняется зависимости и пакет GroupedOpenApi.
  • Меняем зависимость jackson-datatype-hibernate5 на jackson-datatype-hibernate5-jakarta и в AppConfig заменяем Hibernate5Module на Hibernate5JakartaModule
  • В security antMatchers меняется на requestMatchers и нужно явно исключать swagger-ui из авторизации. Плюс добавилась миграция на Spring Security 6
  • ResponseEntityExceptionHandler теперь поддерживает спецификацию RFC-7807 - описание ошибок, перешел на нее в исключениях. В класс описания ошибок ProblemDetail можно добавлять свои поля: в GlobalExceptionHandler#handleMethodArgumentNotValid() добавил поле invalid_params. Однако при сериализации Jackson через поля, как у нас, в ответе это поле дублируется. Пришлось делать workaround: класс AppConfig.MixIn. Для обработки AppException сделал метод, возвращающий ProblemDetail
  • В AdminUserControllerTest не идут тесты на запросы со слешем в конце. Сделал отдельную переменную REST_URL_SLASH
  • Добавил исключения и поменял данные пользователей, как на стажировке TopJava
Spring Boot 3.0 Goes GA
What's New in Spring Framework 6.x
Spring Boot 3.0 Goes GA
Get ready for Spring Boot 3.0
The best way to do the Spring 6 migration
Spring Boot 3.0 Migration Guide
Spring Boot 3.1 Release Notes

Приглашаю на наши проекты и приятного кодинга!

< 7-е занятие   Стажировка TopJava