Миграция на 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