Spring Boot 3.0中Swagger UI无法正常运行的问题求助
问题
运行Spring Boot 3.0版本的应用,集成Swagger UI时出现大量异常。已查阅YouTube、官方文档等资料,仍未解决。当前使用的依赖为:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>3.0.0</version> </dependency>
解决方案
核心问题是Springfox 3.0.0和Spring Boot 3.0不兼容:Spring Boot 3.0全面迁移到Jakarta EE(包路径为jakarta.*),而Springfox 3.0.0还是基于旧的Java EE(包路径javax.*),两者API规范不匹配,导致类加载、依赖冲突等大量异常。
推荐直接替换为SpringDoc OpenAPI,它是Spring生态下适配Swagger的主流方案,完全支持Spring Boot 3.0,步骤如下:
- 删除项目中现有的Springfox依赖
- 添加SpringDoc的UI依赖:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.2.0</version> <!-- 可根据需求选择最新稳定版 --> </dependency>
- 启动应用后,访问Swagger UI地址:
http://localhost:8080/swagger-ui/index.html
如果需要自定义API分组、文档信息等,可添加配置类:
import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenApiConfig { @Bean public GroupedOpenApi publicApi() { return GroupedOpenApi.builder() .group("public-api") .pathsToMatch("/**") .build(); } }
如果非要用Springfox(不推荐,无官方适配支持),需要手动修改依赖包适配Jakarta规范,过程繁琐且容易出现其他问题,不建议尝试。
内容的提问来源于stack exchange,提问作者Rohan Mourya
相关产品推荐
相关产品推荐

