Spring Boot项目配置Swagger UI失败,寻求解决方案
问题分析与解决方案
你的核心问题是SpringFox 3.0.0不兼容Spring Boot 3.x版本,Spring Boot 3基于Jakarta EE规范(使用jakarta.*包),而SpringFox 3.0.0停留在Java EE规范(使用javax.*包),二者包结构不匹配,导致配置无法生效。此外你的依赖还存在重复引入的问题,以下是具体解决办法:
方案一:改用SpringDoc OpenAPI(推荐,完美支持Spring Boot 3+)
SpringDoc是SpringFox的替代方案,专门适配Spring Boot 3及更高版本,无需复杂配置。
1. 替换依赖(修改build.gradle)
删除所有SpringFox相关依赖,添加SpringDoc的starter依赖:
dependencies { // 保留你原有其他依赖 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0' }
2. 移除SpringFoxConfig类
SpringDoc默认自动配置API文档,不需要额外的配置类。直接访问以下路径即可:
- API文档JSON:
http://localhost:8080/v3/api-docs - Swagger UI界面:
http://localhost:8080/swagger-ui/index.html
如果需要自定义文档信息(比如标题、版本),可以添加如下配置类:
package com.example.employeemanager; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenApiConfig { @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title("员工管理系统API") .version("1.0") .description("员工管理系统的接口文档")); } }
方案二:降级Spring Boot到2.x(仅当必须使用SpringFox时选择)
如果一定要保留SpringFox,需要将Spring Boot版本降级到2.x(如2.7.x),同时清理重复依赖:
1. 修改Spring Boot版本(build.gradle)
plugins { id 'java' id 'org.springframework.boot' version '2.7.18' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } dependencyManagement { imports { mavenBom "org.springframework.boot:spring-boot-dependencies:2.7.18" } }
2. 清理重复依赖
springfox-boot-starter已经包含了springfox-swagger2和springfox-swagger-ui,无需单独引入:
dependencies { // 保留你原有其他依赖 implementation 'io.springfox:springfox-boot-starter:3.0.0' }
3. 访问路径
此时可以正常访问:
- API文档JSON:
http://localhost:8080/v2/api-docs - Swagger UI界面:
http://localhost:8080/swagger-ui/
内容的提问来源于stack exchange,提问作者user25450700
相关产品推荐
相关产品推荐

