Member-only story
Dependencies That Won’t Work with Spring Boot 3.x and How to Migrate
Springfox and other dependencies relying on Java EE or older versions of Spring may not work in Spring Boot 3.x due to several breaking changes. Specifically, Spring Boot 3.x is built on Spring Framework 6, which requires Java 17 and has shifted from Java EE to Jakarta EE namespaces, among other updates. Here’s a detailed look at specific dependencies, including Springfox, that are not compatible with Spring Boot 3.x:
1. Springfox (Swagger 2.x)
Springfox, a popular library used for generating Swagger documentation, is not compatible with Spring Boot 3.x. This is because Springfox relies on Spring 5.x and Java EE (using javax.*
packages), which have been replaced by Spring Framework 6 and Jakarta EE in Spring Boot 3.x.
- Action: Use Springdoc OpenAPI instead of Springfox in Spring Boot 3.x.
- Springdoc OpenAPI is fully compatible with Spring Boot 3.x and provides similar functionality for generating OpenAPI/Swagger documentation.
- To migrate, replace
springfox-swagger2
andspringfox-swagger-ui
withspringdoc-openapi
dependencies.
Example Springdoc OpenAPI Dependency:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>2.0.0</version>
</dependency>